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