openCV平滑函數
註解:
(1)可能大家啊對CvArr的理解不是很深刻,可以將其看做C++中的基類,當然也包括IplImage
(2)smooth支持的類型:
CV_BLUR 簡單模糊 對每個像素param1,param2求和,並縮放1/(param1*param2),亦即求簡單平均值
CV_BLUR_NO_SCALE 簡單無縮放變化的模糊 對每個像素param1,param2求和 特別說明的是輸入圖像和結果圖像必須有不同的數值精度,以保證不會發生
溢出,如果源圖像是8u,則結果圖像必須是16s或者32s
CV_MEDIAN 中值模糊 取中心像素的正方形領域類的每個像素的值用中間值代替
CV_GAUSSIAN 高斯模糊 param3爲零時,高斯卷積核sigma通過以下公式計算
sigma(x) = (n(x)/2-1)*0.30+0.80,n(x)= param1
sigma(y) = (n(y)/2-1)*0.30+0.80,n(y)= param2
如果第四個參數指定,則第三個和第四個參數分別表示sigma的水平方向和垂直方向的值
如果第三個,第四個參數已經指定,而前兩個參數爲0,那麼窗口的尺寸由sigma確定
速度較慢但最有效
CV_BILATERAL 雙向濾波 因爲高斯模糊是在圖像在空間內的像素是緩慢變化的,但隨機的兩個點可能形成很大的
像素差,高斯濾波在保留信號的條件下減少噪聲,但在接近邊緣的地方無效,雙向濾波可以解決這個問題,但需要更多的時間代價,
其需要兩個參數,param1表示空域中所使用的高斯核的寬度,param2表示顏色域高斯核的高度