ボックス フィルターを実装していますが、幅が高さと異なる 3 X 5 などのフィルター マスク サイズを許可する必要があるかどうか疑問に思っています。
これまでのところ、3x3 や 5x5 などのマスク サイズのフィルターのみを実装しました。幅が高さと異なることを許可することは有効ですか? ユーザーがそのようなマスクを指定できるようにすることができると思いますが、奇妙な結果が得られた場合、それは彼のせいですか?
ありがとう
ボックス フィルターを実装していますが、幅が高さと異なる 3 X 5 などのフィルター マスク サイズを許可する必要があるかどうか疑問に思っています。
これまでのところ、3x3 や 5x5 などのマスク サイズのフィルターのみを実装しました。幅が高さと異なることを許可することは有効ですか? ユーザーがそのようなマスクを指定できるようにすることができると思いますが、奇妙な結果が得られた場合、それは彼のせいですか?
ありがとう
アプリケーションで、サイズの異なる複数のボックス フィルターを使用して同じ画像のボックス フィルター処理を繰り返す必要がある場合は、最初に指定された画像の積分 (ピクセル数 N で O(N)) を計算する方がはるかに効率的であることに注意してください。 )、次に積分から各フィルターの出力を計算します (再び O(N) で)。m 個のフィルターの場合、ボックスのサイズに関係なく、m * O(N) アルゴリズムが得られます。いくつかの大きなボックスでフィルタリングしている場合、これは通常、パフォーマンスに大きなメリットをもたらします。
OpenCV の実装については、こちらを参照してください。
ボックス フィルターは伝統的に として実装されていN x N
ますが、これは好きなように変更できます。
補足として、OpenCV では独自のフィルターを作成できますcv::filter2D()
が、関数では非二次フィルターを作成することはできません。ただし、これはボックス フィルターなので、サイズcv::blur()
を渡してみましょう。N x M
はい、有効です。
フィルタは、次元ごとに異なる場合があります。これは、使用しているレンズの中心が均一でない場合、光学系でも発生する可能性があります。