数字图像处理学习之路(一):使用OpenCV自带库函数实现滤波

一、imread读取图片

​ Mat对象可以用来接收图片。

	Mat srcImage = imread("D:\\image\\4.jpg",0);
	//函数对应的参数含义
	Mat imread( const String& filename, int flags = IMREAD_COLOR );
	//(文件路径,读取图片的格式)默认为IMREAD_COLOR

​ 参数中flags的值可以有三种:

​ 1.IMREAD_COLOR ,>0

​ 2.IMREAD_GRAYSCALE ,=0

​ 3.IMREAD_UNCHANGED , <0

二、方框滤波

	boxFilter(srcImage, dstImage, -1, Size(3, 3));
	//函数对应的参数含义
	CV_EXPORTS_W void boxFilter( InputArray src, OutputArray dst, int ddepth,
                             Size ksize, Point anchor = Point(-1,-1),
                             bool normalize = true,
                             int borderType = BORDER_DEFAULT );

三、均值滤波

	blur(srcImage, dstImage1, Size(5, 5), Point(-1, -1));
	//函数对应的参数含义
	CV_EXPORTS_W void blur( InputArray src, OutputArray dst,
                        Size ksize, Point anchor = Point(-1,-1),
                        int borderType = BORDER_DEFAULT );

四、高斯滤波

	GaussianBlur(srcImage, dstImage2, Size(5, 5), 0, 0);
	//函数对应的参数含义
	CV_EXPORTS_W void GaussianBlur( InputArray src, OutputArray dst, 
                                Size ksize,
                                double sigmaX, double sigmaY = 0,
                                int borderType = BORDER_DEFAULT );	

五、中值滤波

	medianBlur(srcImage, dstImage3, 5);
	//函数对应的参数含义
	CV_EXPORTS_W void medianBlur( InputArray src, OutputArray dst, int ksize );

六、双边滤波

	bilateralFilter(srcImage, dstImage4, 6, 12, 6 / 2);
	//函数对应的参数含义
	CV_EXPORTS_W void bilateralFilter( InputArray src, OutputArray dst, int d,
                                   double sigmaColor, double sigmaSpace,
                                   int borderType = BORDER_DEFAULT );

猜你喜欢

转载自blog.csdn.net/Lianhaiyan_zero/article/details/126126070