2
我需要用編程方式用高斯濾波器填充nXn矩陣。我一直在努力爲圖形項目工作,但我有點卡住了。在C++中用高斯濾波器編程地填充nxn矩陣
爲了澄清,一個例子3X3高斯濾波器矩陣是:
[1, 2, 1]
[2, 4, 2]
/16.0
[1, 2, 1]
我需要用編程方式用高斯濾波器填充nXn矩陣。我一直在努力爲圖形項目工作,但我有點卡住了。在C++中用高斯濾波器編程地填充nxn矩陣
爲了澄清,一個例子3X3高斯濾波器矩陣是:
[1, 2, 1]
[2, 4, 2]
/16.0
[1, 2, 1]
你只需要一個公式對於二維高斯內核和在你的X和Y填寫值。
例如對稱高斯內核:
double w = exp(-(fx*fx + fy*fy)/(2.0 * sigma * sigma))/(2.0 * M_PI * sigma * sigma);
對於具有漂亮的圖表的說明見:
http://www.librow.com/articles/article-9
尤其:3. 2D情況
注西格馬和增益(特別是對於整數係數)的這種選擇是非常重要的,因此您可能想要添加一些關於如何確定這些內容的更多細節。 – 2010-09-16 13:41:59
是的,這會非常有幫助。不知道如何把我的標準偏差放在'好'的結果 – Dfowj 2010-09-16 15:29:05
請參閱http://opencv.willowgarage.com/documentation/cpp/image_filtering.html#cv-getgaussiankernel - sigma = 0.3 *(ksize/2 - 1 )+ 0.8(ksize是邊緣的奇數長度,在你的情況下爲3) – 2013-07-24 10:11:15