前のページでは平均化フィルタを自作しましたが,scikit-image では様々なフィルタ関数が提供されています.ここでは,scikit-image の filters.threshold_local
関数による平均化フィルタを使用してみます.なお,filters.threshold_local
関数の詳細やソースコードはここを参照してください.
まず,「表示関数の定義」ページを参照し,ライブラリのインポートと関数の定義を実行したあと,画像ファイルをグレースケールに変換して表示します.
ink_img = plt.imread('ink.png')
img = color.rgba2rgb(ink_img)
gray_img = color.rgb2gray(img)
show(gray_img)
オリジナル
次に平均化フィルタの処理を行います.関数 filters.threshold_local
の引数で,method='mean'
を指定することで平均化フィルタを指定できます.また,block_size=7
とすることで,7x7画素の近傍領域を使用することになります.
mean_img = filters.threshold_local(gray_img, method='mean', block_size=7)
show(mean_img)
平均化フィルタ (7x7画素)
拡大図も作成します.これは前のページの結果と同じであるはずです.
show_zoom_with_color(
mean_img, xlim=(50.5,59.5), ylim=(89.5, 80.5),
figsize=(6,6), fontsize=10, show_color=True
)
平均化フィルタ (7x7画素)
ここでは,scikit-image で提供される filters.threshold_local
関数を使って平均化フィルタ処理を行いました.次のページではscikit-image のガウシアンフィルタを利用してみます.