[scikit-image] 35. 平均化フィルタによる画像の平滑化(skimage.rank mean, mean_percentile, mean_percentile)

python

はじめに

ここでは、skimage rank mean, mean_percentile, mean_percentileにより画像に平均化フィルタを適用した例について説明する。

コード

解説

モジュールのインポート

画像データの読み込み

下のロフォフォラの画像を読み込み、rgb2grayにより、グレースケール化する。

平均化する範囲の設定

selem_s = np.ones((50, 50))で平均をとる領域を設定する。50×50の領域ごとに平均をとる。

画像の平均化

一般的な平均化

normal_result = rank.mean(image, selem=selem_s) によりimageをselem_sの領域により平均化する。

所定のグレーレベルで平均化

percentile_result = rank.mean_percentile(image, selem=selem_s, p0=0.3, p1=0.7)により、画像中の下から30%〜70%の要素のみを平均化する。

所定の領域を平均化

bilateral_result = rank.mean_bilateral(image, selem=selem_s, s0=50, s1=50)により、画像のピクセル値をgとすると、グレーレベル間隔が[g-50、g + 50]の範囲で平均化される。つまり、連続な領域(画像のグレーレベルに差があまりない領域)で平均化が実行される。

画像の表示

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

Mean filters — skimage 0.24.0 documentation
skimage.filters.rank — skimage 0.24.0 documentation
skimage.filters.rank — skimage 0.24.0 documentation
skimage.filters.rank — skimage 0.24.0 documentation

コメント