宿題の一環として、逆フィルターを実装しています。画像を劣化させ、逆フィルターで回復します。
5x5ボックスフィルターを使用して空間領域で画像をたたみ込みます。IフィルターをFFT、劣化画像をFFTし、劣化画像をフィルターで除算します。結果を画像に逆FFTすると、ゴミが発生します。
画像をFFTする場合、フィルターをFFTし、2つを乗算し、その結果をFFTフィルターで除算すると、元の画像に非常に近くなります。((X * Y)/ Y〜== X)
数学は「空間畳み込み== FFT乗算」ほど単純ではありません。
逆フィルターを使用する正しい方法は何ですか?使用されている正確なカーネルでイメージを劣化させています。ノイズを加えていません。
Bovikの教科書「画像処理の基本ガイド」では、ほぼ完全に逆フィルターを無視しています。Gonzalez&Woodsはもう少し希望がありますが、ほとんどすぐにウィーナーフィルターにスキップします。
私はstackoverflow.comで同様の質問をしてい ます/programming/7930803/inverse-filter-of-spatially-convolved-versus-frequency-convolved-image
(この質問にも[宿題]のタグを付ける必要がありますが、タグはまだ存在せず、作成する担当者もいません。)
編集。以下のいくつかの素晴らしい提案について。@ dipan-mehta FFTを行う前に、畳み込みカーネルを画像と同じサイズにパディングしています。カーネルを左上に配置しています。次にifft(ifftshift())を画像に保存すると、良い結果が得られます。カーネルとイメージの両方でifft(ifftshift())を実行しました。良い(ish)結果。(画像は私の/programming/7930803/inverse-filter-of-spatially-convolved-versus-frequency-convolved-image質問にあります。)
@ jason-rはおそらく正しいでしょう。基礎となる畳み込み+変換の数学を理解していません。「デコンボリューション」は私にとって新しい言葉でした。まだ学ぶべきことがたくさんあります。助けてくれてありがとう!
宿題の私の解決策は、周波数領域ですべてを行うことです。教授と話をした。私は必要以上に割り当てを難しくしていました。彼女は、ノイズを追加してから、逆フィルター、ウィーナーフィルター、および制約付き最小二乗フィルターを試してみたかったのです。演習のポイントは、フィルターがノイズをどのように処理するかを確認することでした。