2012-07-11 73 views
0

有人能告訴我如何創建我自己的高斯內核? 在論文Frequency-tuned Salient Region Detection (Section 4.2)中,他們使用DoG帶通濾波器。我不知道如何在OpenCV/JavaCV中實現它。 DoG的內核被稱爲:1/16 [1; 4; 6; 4; 1]。有人可以解釋如何設置這些內核?如何創建我自己的高斯內核?

//編輯: 的時候,我已經建立了我的狗與篩選:

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

內核只是CV ::墊

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

由於文檔說,你應該創建要墊內核:

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

我沒有測試它但應該工作。

您也可以根據手的內核應用操作。這並不難。

+0

謝謝,用手?我怎樣才能做到這一點? – 2012-07-11 13:28:52

+1

谷歌執行高斯濾波器的一些參考http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/ http://www.librow.com/articles/article-9 http://lodev.org/cgtutor/filtering.html我只是滾動這個網站。你可以propably找到更好的參考。 – krzych 2012-07-11 13:45:37