開発環境
- macOS Mojave - Apple
- Emacs (Text Editor)
- Python 3.7 (プログラミング言語)
実践 コンピュータビジョン (Jan Erik Solem (著)、相川 愛三 (翻訳)、オライリージャパン)の1章(基本的な画像処理)、1.6(演習問題)4.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
from PIL import Image
import numpy as np
from scipy import ndimage
import imageio
print('4.')
def find_contour(im: np.array) -> np.array:
imx = np.zeros(im.shape)
ndimage.filters.sobel(im, 1, imx)
imy = np.zeros(im.shape)
ndimage.filters.sobel(im, 0, imy)
return np.sqrt(imx ** 2 + imy ** 2)
name = 'ginza_blurred_gray'
im_gray = np.array(Image.open(f'{name}.jpg'))
im = find_contour(im_gray)
imageio.imwrite(f'{name}_contours.jpg', im)
# 警告が出るから np.uint8(im2)、im2.astype('uint8')でfloat64を変換
# そうしたら画像が真っ黒になった
# 解決方法がわかるまでは変換しないことに
入出力結果(Terminal, Jupyter(IPython))
$ ./sample4.py 4. WARNING:root:Lossy conversion from float64 to uint8. Range [0.0, 67.89698078707183]. Convert image to uint8 prior to saving to suppress this warning. $
0 コメント:
コメントを投稿