0

誰かが自分のガウスカーネルを作成する方法を教えてもらえますか? 論文「Frequency-tuned Salient Region Detection」(セクション 4.2)では、DoG-Bandpass フィルターを使用しています。これを OpenCV/JavaCV に実装する方法がわかりません。DoG のカーネルは 1/16[1; と呼ばれます。4; 6; 4; 1]。誰かがそれらのカーネルを設定する方法を説明できますか?

//編集: やがて、次のように DoG フィルターをセットアップしました:

double sigma_small = Math.PI/2.75; 
double sigma_large = DOUBLE.POSITIVE_INFINITY; 
IplImage gaussL= cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
IplImage gaussS= cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
cvSmooth(input, gaussL, CV_GAUSSIAN, kernel_size,kernel_size, sigma_small, sigma_small);
cvSmooth(input, gaussS,CV_GAUSSIAN, kernel_size,kernel_size, sigma_large, sigma_large); //eq. to 0

しかし、それは間違ったカーネルだと思いました。または、私は何か間違ったことをしました。あいさつ、運命

4

1 に答える 1

4

カーネルはただの cv::Mat です

http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=gauss#getgaussiankernel

ドキュメントにあるように、必要な Mat カーネルを作成する必要があります。

"generated kernels can be passed to sepFilter2D() or to createSeparableLinearFilter()"

私はそれをテストしていませんが、動作するはずです。

カーネルに基づく操作を手動で適用することもできます。難しいことではありません。

于 2012-07-11T13:10:07.633 に答える