4

私はopencvの初心者です。2D ローパス ガウス フィルターを使用するプロジェクトの操作を実行する必要があります。私が使用する OpenCV は 2.2 で、内部には filter2d () と GaussianBlur () の 2 つの関数があります。

同じ仕事をする?説明させてください。filter2d() が () で作成されたガウス カーネル getGaussiankernel をステップし、フィルターを適用して GaussianBlur() で直接実行すると、同じ結果になりますか? 2 つのカーネル関数に同じ値を採用することは明らかです。

4

2 に答える 2

3

GaussianBlur()同じカーネル値を持つ、セットアップがより複雑な filter2d() への単なるショートカットです。同じコア関数を呼び出して、同じ速度で同じことを実行します。

于 2012-01-29T10:46:30.150 に答える
0

表示される違いは、filter2D が畳み込み演算ではなく相互相関を実行することです。X 相関と畳み込みは、対称カーネル/フィルターを使用すると同じ結果になります。カーネルを使用して畳み込みを実行するには、カーネルを反転して、アンカー ポイントをカーネルの中央に設定する必要があります。ドキュメントを参照してください: http://opencv.willowgarage.com/documentation/cpp/image_filtering.html#cv-filter2d

そこから違いが生じるかどうかはわかりませんが、アプリケーションで畳み込みを使用する必要があり、それが実装方法であり、期待どおりに機能しました。

于 2012-01-26T23:48:23.443 に答える