周波数領域でエッジ検出を実行できますか?


11

フーリエ領域でエッジ検出アルゴリズムを実装するために、画像のFFTの高周波成分が一般にエッジに対応するという事実を利用できますか?ハイパスフィルターに画像のFFTを掛けてみました。結果の画像はエッジに対応していましたが、畳み込み行列を使用して確立されたエッジ検出ではありませんでした。では、フーリエドメインでエッジ検出を行う方法はありますか、それともまったく不可能ですか?

回答:


6

空間ドメインでの畳み込みはフーリエ(周波数)ドメインでの乗算であるため、画像のスペクトルとエッジ検出カーネルを乗算してフーリエドメインでエッジ検出を実行し、その結果に対してIFFTを実行できます。

ハイパスフィルターだけでは、通常エッジとして分類されないすべての高周波機能(たとえば、鋭いピークやコーナー)を維持するため、エッジ検出には適切ではないと思います。

(私の意見では)エッジは空間ドメインで最もよく記述されるため、より高度なエッジ検出方法は周波数ドメインでは扱いにくいでしょう。

問題は、そもそもなぜFFTを使用してエッジ検出を行うのかということです。パフォーマンスを考慮しているからですか?その場合は、ハイパスフィルター処理された画像(FFTですばやく生成された)を再度すばやくフィルター処理して、エッジ以外の部分を削除できます。


そうですね、その理由は、Matlabが画像の各ピクセルを反復処理するのに非常に時間がかかるためです。畳み込みフィルターをパディングし、そのFFTを取り、画像をフィルターにかけてみます。ありがとう!
rounak

エッジは、ウェーブレットドメインのいくつかのフレーバーに基づいて記述されています(私の意見では);)
Henry Gomersall

1
これはすべて、エッジの定義に依存します。エッジを拡大すると、周波数領域でより低い周波数に「シフト」します。したがって、エッジは、それを高周波特徴として定義するのに十分ではありません。
メデューズ

5

通常、エッジ検出は、Roberts Crossのような2次元フィルター/カーネルのコンボリューションまたはSobelの公式によって行われます。これらはたたみ込みであるため、周波数領域で同等に適用できるなど、LTIルールが適用されます。つまり、カーネルと画像の両方をDFTを介して周波数領域に取り込み、それらを乗算してから、結果をIDFTして空間領域に戻します。

また、空間領域のカーネルは、実際にはエッジの高い空間周波数特性を利用しようとすることも付け加えておきます。たとえば、ロバーツを見ると、対角点を横切る微分、つまりハイパスフィルター操作がどのように行われているかがわかります。


1

単一ステップと単一のノコギリ波の両方で、周波数領域の周波数と位相の間に良好な線形関係が生成され、アンラップされた位相の勾配はFFTウィンドウのエッジの位置に依存します。想定された単一エッジの位置を検出または推定するには、周波数領域で位相をアンラップして、その結果が何らかの検出しきい値を超えるのに十分な線形相関があるかどうかを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.