はじめに
Seaborn-imageはmatplotlibベースの画像可視化ライブラリで、画像データを簡潔なコードで明瞭に表示できます。このライブラリは、データ可視化ライブラリのseabornの2次元データ版のような位置づけとなっています。この記事では、Seaborn-imageの機能の一つである「filterplot」について解説します。filterplotを使うことで、画像に様々なフィルタを適用し、その効果を視覚的に確認することができます。
コード&解説
インストール
condaの方は
conda install -c conda-forge seaborn-image
pipの方は
pip install -U seaborn-image
でインストールできます。
モジュールのインポート
seaborn_image は isnsとして読み込みます。
バージョン
全体の設定
isns.set_imageで、デフォルトのカラーマップをcmap=”bone”とし、画像の原点の設定をupperにします。
適用可能なフィルタ
かけることのできるフィルタには以下のものがあります。
filterplotで利用できる代表的なフィルタには以下のようなものがあります:
エッジ検出フィルタ
Sobel、Prewitt、Laplaceなどのフィルタは、画像内のエッジ(輪郭)を強調するために使用されます。これらは物体の境界を検出する際に非常に有効です。
ぼかしフィルタ
ガウシアンフィルタやメディアンフィルタは、画像のノイズを除去したり、細部を滑らかにしたりするために使用されます。特にガウシアンフィルタは、正規分布に基づいた重み付けで周辺ピクセルの平均を取るため、自然なぼかし効果が得られます。
シャープニングフィルタ
アンシャープマスクなどのシャープニングフィルタは、画像の細部をより鮮明にするために使用されます。これらは医療画像や天体写真の分析などで特に重要です。
データの読み込み
サボテンのすみれ丸の画像を読み込みます。以下の画像を使用し、rgb2grayでグレースケールに変換しています。

gaussianフィルタ
filterplotでfilt=’gaussian’,sigma=5と指定することで、sigma値5のガウシアンフィルタをかけた画像を表示できます。

ndimageの関数を直接、例えば
filt=ndi.gaussian_filterのように指定することでも、フィルタを適用した画像を表示できます。

sobelフィルタ


medianフィルタ


maxフィルタ


DoGフィルタ


ガウス微分フィルタ


gaussian_laplaceフィルタ


laplaceフィルタ


minimumフィルタ


percentileフィルタ


prewittフィルタ


rankフィルタ


uniformフィルタ

uniformフィルタは、平均値フィルタ(meanフィルタ)である。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)まとめ
Seaborn-imageのfilterplot機能は、画像処理における様々なフィルタの効果を視覚的に理解するための強力なツールです。シンプルなコードで複雑な画像処理の効果を比較できるため、初心者から専門家まで幅広いユーザーにとって有用です。画像データを扱う際には、このライブラリを活用して効率的な分析と可視化を行いましょう。
コメント