OpenCV入门:平滑处理 — 高斯模糊

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WSDS_MZM/article/details/78938572

平滑处理 — 高斯模糊

相关函数:

C++: void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT)

参数解析:

  • src – 输入图片,可以使是任意通道数,该函数对通道是独立处理的,但是深度只能是CV_8UCV_16UCV_16SCV_32F or CV_64F.
  • dst – 输出图片,和输入图片相同大小和深度。
  • ksize – 高斯内核大小。ksize.widthksize.height允许不相同但他们必须是正奇数。或者等于0,由参数sigma的乘机决定。
  • sigmaX – 高斯内核在X方向的标准偏差。
  • sigmaY – 高斯内核在Y方向的标准偏差。如果sigmaY为0,他将和sigmaX的值相同,如果他们都为0,那么他们由ksize.widthksize.height计算得出。
  • borderType – 用于判断图像边界的模式。
  • 为了结果的正确性着想,最好是把第三个参数Size,第四个参数sigmaX和第五个参数sigmaY全部指定到。

相关实例:

#include<opencv2/core/core.hpp>  
#include<opencv2/highgui/highgui.hpp>  
#include"opencv2/imgproc/imgproc.hpp"  
#include <stdio.h>  

using namespace cv;

/*
高斯模糊: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 – 用于判断图像边界的模式。

*为了结果的正确性着想,最好是把第三个参数Size,第四个参数sigmaX和第五个参数sigmaY全部指定到。
**/

int main() {
	cvNamedWindow("高斯模糊原图", 0);
	cvNamedWindow("高斯模糊效果图",0);

	Mat imageSrc = imread("game.jpg");
	imshow("高斯模糊原图", imageSrc);
	Mat imageChange;

	//高斯模糊处理
	GaussianBlur(imageSrc, imageChange, Size(7, 7), 0, 0);
	//显示效果图  
	imshow("高斯模糊效果图", imageChange);

	waitKey(6000 * 100);
}

效果图:


猜你喜欢

转载自blog.csdn.net/WSDS_MZM/article/details/78938572