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:用於判斷影象邊界的模式。
三、程式程式碼
-
#include "cv.h" // OpenCV 檔案頭
-
#include "highgui.h"
-
#include "opencv2/opencv.hpp"
-
#include "opencv2/imgproc.hpp"
-
#include <iostream>
-
#include <string>
-
using namespace cv;
-
using namespace std;
-
int main(int argc, char *argv[])
-
{
-
Mat m_SrcImg;
-
m_SrcImg = imread("C:\\Users\\lidabao\\Desktop\\image\\1\\LENA1.bmp", -1);
-
namedWindow("原影象", 1);
-
imshow("原影象", m_SrcImg);
-
Mat m_ResImg;
-
//高斯平滑
-
GaussianBlur(m_SrcImg, m_ResImg, Size(3, 3), 0, 0);
-
namedWindow("高斯平滑", 1);
-
imshow("高斯平滑", m_ResImg);
-
waitKey(0);
-
}
四、結果
程式執行如下圖:
五、注意
正確的配置opencv
正確使用GaussianBlur()函式