3

OpenCV では、次を使用して 9:9 マトリックスである画像処理用のガボール カーネルを取得します。

Imgproc.getGaborKernel(...)

元の画像のグレー マトリックスがあります。(カーネルが画像のサイズなのか、それとも小さなセグメントなのかさえわかりませんが、小さなカーネルについてはかなり確信しています)

2つを畳み込み、畳み込みの出力を取得するにはどうすればよいですか?

エッジ検出用のガボール ウェーブレット フィルターをまとめようとしています。

EDIT:行列の畳み込みに関する限り、opencvの「filter2d」メソッドがそれを行うために使用され、Android OpenCV APIのImgprocクラスにあるようです。

ただし、畳み込みを行って画面に表示すると、単なる黒い画像になります。

Size size = new Size(9,9);
Mat gaborKernel = Imgproc.getGaborKernel(size, 3.0, -Math.PI/4, Math.PI, 10.0, Math.PI*0.5, CvType.CV_64F);
Imgproc.filter2D(intermediate, output, -1, gaborKernel);
Bitmap temp = Bitmap.createBitmap(intermediate.cols(), intermediate.rows(), Config.ARGB_8888);
Utils.matToBitmap(output, temp);

値を確認するためにシステム出力を実行しましたが、以下に示すように、すべての値が非常に小さいです。

行ごとのガボール値

4

1 に答える 1

2

カーネルを正規化する必要があります。

カーネル行列をループして、値の合計を計算します。次に、再度ループして、各値を合計に除算します。これにより、カーネルが全体的な明るさを変更しないことが保証されます。

于 2012-12-16T22:24:39.587 に答える