0

ウィキペディアを読んで、画像に対して空間フィルタリングを実行する必要がある場合は、3x3などのフィルターが必要であることがわかりました。ここで理解できないのは、フィルターの値をどのように選択できるかということです。元の画像がグレースケールであるため、その強度は0から255(8ビット)になるとします。
もう1つの質問は、画像が9x9の場合、その画像の境界ピクセルにフィルターをどのように適用できるかということです。フィルタがすべての境界ピクセルで機能するように画像をパディングすることを選択した場合、新しいパディングされたピクセルの値はどうなりますか?
どうもありがとうございます

4

1 に答える 1

1

フィルタの値は、フィルタリングによって何を達成したいかによって異なります。特定のタスクを実行するためのフィルター設計はたくさんあります。たとえば、最も単純なフィルターf = [-1 1 -1]は、水平方向(x-derivative)で各ピクセルに対して1次微分を実行することによって画像派生を実行し、f'は垂直(y-derivative)で同じことを実行します。 。値-1,1、-1は、そのような目的のために選択されます。同じことが3*3フィルターにも当てはまります。一般に、値の選択は、有限インパルス応答(FIR)および無限インパルス応答(IIR)フィルターの2D(双方向)設計から行われます。

ボーダーのフィルター操作の値はそれほど正確ではないことに注意してください。ボーダーピクセルのフィルタリング操作は、ボーダー補間と呼ばれるプロセスによって範囲外のピクセルを補間することで行われます。OpenCVおよび同様の画像処理/コンピュータービジョンライブラリでは、それを行う方法があります。たとえば、opencvでは次のようになります

さまざまな境界線の種類、画像の境界線は「|」で示されます

  • BORDER_REPLICATE:aaaaaa | abcdefgh | hhhhhhhh
  • BORDER_REFLECT:fedcba | abcdefgh | hgfedcb
  • BORDER_REFLECT_101:gfedcb | abcdefgh | gfedcba
  • BORDER_WRAP:cdefgh | abcdefgh | abcdefg
  • BORDER_CONSTANT:iiiiii | abcdefgh|iiiiiii指定された「i」

したがって、選択に応じて、ボーダーピクセルをパディングします。

于 2012-11-28T19:19:12.257 に答える