八.使用OpenCv图像平滑操作
1.cvSmooth函數
函數 cvSmooth 可使用簡單模糊、簡單無縮放變換的模糊、中值模糊、高斯模糊、雙邊濾波的不論什么一種方法平滑圖像。每一種方法都有自己的特點以及局限。 沒有縮放的圖像平滑僅支持單通道圖像,而且支持8位到16位的轉換(與cvSoble和cvaplace相似)和32位浮點數到32位浮點數的變換格式。
簡單模糊和高斯模糊支持 1- 或 3-通道, 8-比特 和 32-比特 浮點圖像。
這兩種方法能夠(in-place)方式處理圖像。?
中值和雙向濾波工作于 1- 或 3-通道, 8-位圖像,可是不能以 in-place 方式處理圖像。
定義原型
?? void cvSmooth( const CvArr* src, CvArr* dst,int smoothtype=CV_GAUSSIAN,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int param1, int param2, double param3, double param4 );
src:輸入圖像.
dst:輸出圖像.
smoothtype平滑方法:
CV_BLUR_NO_SCALE(簡單不帶尺度變換的模糊) - -對每一個象素的 param1×param2 領域求和。假設鄰域大小是變化的,能夠事先利用函數 cvIntegral 計算積分圖像。
CV_BLUR (simple blur)——對每一個象素param1×param2鄰域求和并做尺度變換 1/(param1×param2)。
CV_GAUSSIAN(gaussian blur)——對圖像進行核大小為 param1×param2 的高斯卷積。
CV_MEDIAN(median blur)——對圖像進行核大小為param1×param1 的中值濾波 (鄰域是方的)。
CV_BILATERAL(雙向濾波)——應用雙向 3x3 濾波,彩色 sigma=param1。空間 sigma=param2.。
2.實例
效果圖:
? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ?
? ? ? ? ?
模糊后:? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ?
版權聲明:本文博客原創文章,博客,未經同意,不得轉載。
總結
以上是生活随笔為你收集整理的八.使用OpenCv图像平滑操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用typedef声明新类型及函数指针
- 下一篇: 以变应变,才有出路