1

中心差を利用し、同時にy方向のガウス平滑化を実行する3x3x微分画像フィルターを実装するタスクがあります。

x方向(h = 1)でそのタスクの式がありますが、正しく理解しているかどうかわかりません。

(f(x+h;y)-f(x-h;y)) / 2*h

現在のピクセル(x)から相対して、現在のピクセルより+1先のピクセル値を取得し、現在のピクセルの後ろの位置-1のピクセルから値を減算します。この値を2で割った後、x方向の1次導出は多かれ少なかれですか?私の実際の現在のピクセル値はまったく使用されていませんか?

4

1 に答える 1

1

従来、画像の場合、中心は微分フィルターには使用されません。理由は次のとおりです。

  1. ほとんどの画像処理フィルターの目的は、元の画像から物を見つけて識別することです。したがって、適切なカーネル(*)は、変更と同じ場所に集中します。
  2. 導関数はゼロを意味する必要があります。カーネルからすべてのピクセルを追加する場合、それらはゼロになるはずです。

これらの2つのポイント、特に最初のポイントを考えると、カーネルには奇数の要素があり、中心は0である必要があることは明らかです。基本的に、カーネルが奇数の場合、元のエッジを保持する傾向があります。

1次元の例を取り上げ、指定した式を適用して、エッジをトリミング(強制的に0)すると、次のようになります。

[0  1  3  2  10  12 8 11];
[0 -2 -1 -7 -10   2 1 0 ];

2つの最も高いマグニチュード値がピークにあることに注意してください。中心値が0でないものも含めて、他のカーネルで遊んでみて、どのような結果になるかを確認してください。

(*)カーネルは、実行している機能を表します。あなたが提供した場合、カーネルは[10-1]です。

于 2012-04-19T01:34:57.870 に答える