【python】画像処理その4 ~フィルター~
SciPy
「サイパイ」って読むらしいです.
この中にあるndimage
とsignal
を使っていきますです.
ガウシアンフィルタ
今回はガウシアンフィルタをかけていきます.
画像が平滑化されます.
とりあえずやってみましょう.
ガウシアンフィルタとはなんぞ?って人はこちら→ガウシアンフィルタの解説
コードと結果
from PIL import Image
import numpy as np
from matplotlib import pylab as plt
from scipy import ndimage
#画像を開いてグレーにしてNumPy配列にする
img = np.array(Image.open('lena.jpg').convert('L'), 'f')
#ガウシアンフィルタをかける
img_gaussian = ndimage.filters.gaussian_filter(img, 10)
#表示
plt.imshow(img_gaussian, cmap='Greys_r')
plt.show()
ぼやっとしましたね.
因みに,ndimage.filters.gaussian_filter(img, 10)
この引数の二番目は標準偏差σ
のことらしいです.
この値が大きとよりぼやっとします.
さっきの例はσ=10
でした.
σ=2
だとこんな具合です.
さっきよりハッキリしてますね.
ウィーナーフィルタ
お次はウィーナーフィルタです.
ウィーナーフィルタとはなんぞ?って人はこちら→ウィーナーフィルタの解説
コードと結果
from PIL import Image
import numpy as np
from matplotlib import pylab as plt
from scipy import ndimage
from scipy import signal
#画像を開いてグレーにしてNumPy配列にする
img = np.array(Image.open('lena.jpg').convert('L'), 'f')
#ウィーナーフィルタをかける
img_wiener = signal.wiener(img, 151, 1999.0)
#画像を連結して表示する
#連結するために配列を用意する
images = [img, img_wiener]
#concatenateは連結するって意味
img_show = np.concatenate(images, axis=1)
#表示
plt.imshow(img_show, cmap='Greys_r')
plt.show()
なんかいい感じですね(小並感)
参考
・http://www.turbare.net/transl/scipy-lecture-notes/advanced/image_processing/index.html
・http://www.mwsoft.jp/programming/computer_vision_with_python/1_4_scipy.html
Author And Source
この問題について(【python】画像処理その4 ~フィルター~), 我々は、より多くの情報をここで見つけました https://qiita.com/kikuchiTakuya/items/73a9626c412dcfeffe4c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .