はじめに
ここでは、skimage restoration denoise_tv_chambolle, denoise_bilateral, denoise_waveletにより画像のノイズを低減する例について説明する。
コード
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)解説
モジュールのインポート
画像データの読み込みとスライス
下のマミラリア属 満月の画像を読み込む。球体の左上部分をスライスして抽出する。
画像にノイズを加える
random_noise()で分散(var)を指定することでノイズが加わった画像が生成する。
全変動フィルタによるノイズ低減
画像の全変動を最小限に抑えることでノイズを低減している。原理は下記が詳しい。
Total variation denoising - Wikipedia
バイラテラルフィルタによるノイズ低減
バイラテラルフィルタは下記が詳しい。
バイラテラルフィルタ
ガウシアンフィルタなどのフィルタでは、ノイズをできるだけ除去しようとすると、輪郭もボケてしまうという欠点がありました。 この欠点を解決しようとした処理アルゴリズムがバイラテラルフィルタ(bilateral filter)です。 バイラテラル
ウェーブレットノイズ除去フィルタによるノイズ低減
ウェーブレット変換によるノイズの除去。詳細は下記が詳しい。
ウェーブレットのノイズ除去
- MATLAB & Simulink
- MathWorks 日本
この例では、dsp.DyadicAnalysisFilterBank と dsp.DyadicSynthesisFilterBank の System object を使用して、信号からノイズを除去する方法を示します。
画像の表示
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
コメント