Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pillowライブラリで画像にMinFilter(最小値フィルタ)を適用する方法

この記事では、Pythonの画像処理ライブラリ「Pillow」を使用して、画像に最小値フィルタ(MinFilter)を適用する方法を解説します。

最小値フィルタとは、画像内の選択したウィンドウ(領域)内の各ピクセルの値を、そのウィンドウ内の最小のピクセル値で置き換える処理のことです。このフィルタを適用すると、画像内の明るいノイズ(ごま塩ノイズの白い部分など)を効果的に除去できます。Pillowライブラリでは、filter()関数を使うことで、さまざまな種類のフィルタを簡単に適用することが可能です。

元画像

Pillowライブラリで画像にMinFilter(最小値フィルタ)を適用する方法

アルゴリズム

ステップ1:PillowからImageモジュールをインポートする。
ステップ2:画像を開く。
ステップ3:filter()関数を呼び出し、MinFilterを指定する。
ステップ4:出力結果を表示する。

サンプルコード

from PIL import Image, ImageFilter

im = Image.open('testimage.jpg')
im1 = im.filter(ImageFilter.MinFilter(size = 7))
im1.show()

コードの解説

  • Image.open():指定したパスの画像ファイルを読み込みます。
  • ImageFilter.MinFilter(size=7):7×7ピクセルのウィンドウ内で最小値を取るフィルタを作成します。sizeには3以上の奇数を指定します。値が大きいほど、より広範囲の領域に対してフィルタが適用されます。
  • show():処理後の画像を表示します。

実行結果

フィルタを適用すると、各ピクセルが周辺領域の最小値で置き換えられるため、画像全体が暗くなり、明るいノイズが除去されたことが確認できます。

Pillowライブラリで画像にMinFilter(最小値フィルタ)を適用する方法

まとめ

PillowのImageFilter.MinFilterを使えば、わずか数行のコードで画像に最小値フィルタを適用できます。サイズを調整することで、ノイズ除去の強さを制御できるため、画像の前処理やノイズ除去の用途にぜひ活用してみてください。

  1. Pillowライブラリを使って画像の各チャンネル(バンド)のピクセル平均値を計算する方法

    この記事では、PythonのPillowライブラリを使用して、画像内の各チャンネル(バンド)に含まれるすべてのピクセル値の平均を計算する方法を解説します。一般的なカラー画像にはR・G・Bの3つのチャンネルが含まれているため、実行結果として3つの平均値がリスト形式で取得できます。 元画像 アルゴリズム 手順1: ImageモジュールとImageStatモジュールをインポートする。 手順2: 対象となる画像ファイルを開く。 手順3: 開いた画像をImageStatクラスのStat関数に渡す。 手順4: 各チャンネルのピクセル平均値を出力する。 サンプルコード from PIL import I

  2. Pillowライブラリを使って画像の各バンド(チャンネル)のピクセル中央値を計算する方法

    この記事では、PythonのPillowライブラリを使用して、画像の各チャンネル(バンド)に含まれる全ピクセルの中央値(MEDIAN)を計算する方法を解説します。 一般的なカラー画像には「R(赤)」「G(緑)」「B(青)」の3つのチャンネルが存在するため、実行結果として3つの値からなるリストが得られます。 元画像 アルゴリズム 処理の手順は以下の通りです。 ステップ1:ImageモジュールとImageStatモジュールをインポートする。 ステップ2:対象となる画像ファイルを開く。 ステップ3:開いた画像をImageStatクラスのstat関数に渡す。 ステップ4:ピクセルの中央値を出力する。