1、一維高斯分布:
2、二維高斯分布:
3、高斯濾波一般使用的*二維零均值*的高斯分布函式,通過高斯分布函式求出模板係數,例如乙個3*3
的模板:以模板的中心位置為座標原點進行取樣,其中模板各個座標位置如下圖,x軸水平向右,y軸垂直向下,(x,y)表示
4、將各個位置的座標代入二維零均值高斯分布函式,計算出來的模板有兩種形式:
整數模板和小數模板,可以使用二維陣列來存放計算出的模板係數
①小數模板:
②整數模板:
5.標準差sigma對效果的影響:
sigma越小,高斯分布圖越高、窄,模板中心係數就越大,平滑效果就會差,相當於中心點進行點運算;
sigma越大,高斯分布圖越扁,寬,模板中心係數和周圍係數越接近,會逐漸近似於均值模糊,平滑效果好。
6.生成模板係數**:
void gaussianblur_demo(int ksize, double sigmax, double sigmay)
;模板各係數可儲存在二維陣列window裡面
int center = ksize / 2; //找到模板中心,模板中心座標為(0,0)
for(int i = 0; i < ksize; i++) //求模板各係數,正態分佈均值為0
}//整數模板需要歸一化,將模板第乙個係數換算為1;小數模板不需要歸一化
double k = 1 / window[0][0]; //對左上角係數歸一化處理
double summm = 0;
cout << endl;
for(int i = 0; i < ksize; i++)
}
void gaussianblur( inputarray src, outputarray dst, size ksize,
double sigmax, double sigmay = 0,
int bordertype = border_default );
引數src:可以有任意通道,深度為cv_8u, cv_16u, cv_16s, cv_32f or cv_64f。
引數dst:和原圖一樣的大小和型別。
引數ksize:寬,高可以不一樣,但必須是正、奇數,當為0時由sigma計算出。
引數sigmax:x方向的標準差
引數sigmay:y方向的標準差,如果為0,則將其設定為和sigmax相等,如果sigmax,sigmay均為0,則大小由ksize計算出
OpenCV 高斯濾波
一 前言 關於高斯濾波在我的前一篇文章 數字影象基本處理演算法 中有所談及那篇只是介紹了高斯濾波的應用,現在這一篇將著重簡介高斯濾波的原理和應用,一探個究竟!二 啥是高斯濾波?好吃麼?高斯濾波,說白了就是乙個函式來對輸入的訊號 其實這裡的訊號就是影象的畫素值 進行計算然後得出結果作為該訊號的值,只不...
OpenCV 高斯濾波實現
高斯濾波是一種線性平滑濾波,適用於消除高斯雜訊,廣泛應用於影象處理的減噪過程。通俗的講,高斯濾波就是對整幅影象進行加權平均的過程,每乙個畫素點的值,都由其本身和鄰域內的其他畫素值經過加權平均後得到。在影象處理中高斯濾波一般有兩種實現方式 一種是用離散化視窗滑窗卷積,另一種是通過傅利葉變換。最常見的就...
opencv 輪廓高斯濾波平滑
乙個小測試的題目 在影象上點選,找到與點選處相鄰的顏色相近的點集合,對該點集合提取輪廓,對該點集合輪廓平滑處理,顯示處理結果。include include using namespace std using namespace cv method findregion 漫水填充 fullname ...