[scikit-image] 39. 画像のノイズを低減(skimage.restoration denoise_tv_chambolle, denoise_bilateral, denoise_wavelet)

python

はじめに

ここでは、skimage restoration denoise_tv_chambolle, denoise_bilateral, denoise_waveletにより画像のノイズを低減する例について説明する。

コード

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

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

解説

モジュールのインポート

画像データの読み込みとスライス

下のマミラリア属 満月の画像を読み込む。球体の左上部分をスライスして抽出する。

画像にノイズを加える

random_noise()で分散(var)を指定することでノイズが加わった画像が生成する。

全変動フィルタによるノイズ低減

画像の全変動を最小限に抑えることでノイズを低減している。原理は下記が詳しい。

Total variation denoising - Wikipedia

バイラテラルフィルタによるノイズ低減

バイラテラルフィルタは下記が詳しい。

バイラテラルフィルタ
ガウシアンフィルタなどのフィルタでは、ノイズをできるだけ除去しようとすると、輪郭もボケてしまうという欠点がありました。 この欠点を解決しようとした処理アルゴリズムがバイラテラルフィルタ(bilateral filter)です。 バイラテラル

ウェーブレットノイズ除去フィルタによるノイズ低減

ウェーブレット変換によるノイズの除去。詳細は下記が詳しい。

Wavelet Denoising

画像の表示

Imagegrid により画像を表示した。grid[5]には、軸だけが表示されしまうので、.axis(“off”)で非表示としている。

参考

Denoising a picture — skimage 0.24.0 documentation
skimage.restoration — skimage 0.24.0 documentation
skimage.restoration — skimage 0.24.0 documentation
skimage.restoration — skimage 0.24.0 documentation

コメント