1. 程式人生 > >OPENCV入門教程十三:GaussianBlur高斯平滑

OPENCV入門教程十三:GaussianBlur高斯平滑

OPENCV入門教程十三:GaussianBlur高斯平滑

 

一、目標

學習如何使用OpenCV中的函式,學習對影象的高斯平滑操作,學習GaussianBlur()函式的使用

二、函式說明

函式原型:

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:高斯核心大小。ksize.width和ksize.height允許不相同但他們必須是正奇數。或者等於0,由引數sigma的乘機決定。 
sigmaX:高斯核心在X方向的標準偏差。 
sigmaY:高斯核心在Y方向的標準偏差。如果sigmaY為0,他將和sigmaX的值相同,如果他們都為0,那麼他們由ksize.width和ksize.height計算得出。 
borderType:用於判斷影象邊界的模式。

三、程式程式碼

 
  1. #include "cv.h" // OpenCV 檔案頭

  2. #include "highgui.h"

  3. #include "opencv2/opencv.hpp"

  4. #include "opencv2/imgproc.hpp"

  5. #include <iostream>

  6. #include <string>

  7.  
  8. using namespace cv;

  9. using namespace std;

  10.  
  11. int main(int argc, char *argv[])

  12. {

  13. Mat m_SrcImg;

  14.  
  15. m_SrcImg = imread("C:\\Users\\lidabao\\Desktop\\image\\1\\LENA1.bmp", -1);

  16.  
  17. namedWindow("原影象", 1);

  18. imshow("原影象", m_SrcImg);

  19.  
  20. Mat m_ResImg;

  21. //高斯平滑

  22. GaussianBlur(m_SrcImg, m_ResImg, Size(3, 3), 0, 0);

  23.  
  24. namedWindow("高斯平滑", 1);

  25. imshow("高斯平滑", m_ResImg);

  26.  
  27. waitKey(0);

  28. }

四、結果

程式執行如下圖: 
這裡寫圖片描述

五、注意

正確的配置opencv 
正確使用GaussianBlur()函式