openCV学习笔记(五)-- 模糊图像

图像模糊原理
在这里插入图片描述
在这里插入图片描述

线性滤波—主要为均值滤波和高斯滤波
在这里插入图片描述
在这里插入图片描述

高斯滤波考虑对应距离的权重值进行相加,均值则各处都一样

在这里插入图片描述

非线性滤波–中值滤波和双边滤波

在这里插入图片描述

在这里插入图片描述
与高斯滤波不同,双边滤波不仅仅考虑距离权重,海鲜定了像素值问题,因此可以考虑到轮廓

在这里插入图片描述

在这里插入图片描述

具体使用:

//-------------图像模糊--------------
	
	Mat ImageBlur, dst,gaosiBlur,mediaBlur,bilateralImage;
	ImageBlur = imread("C:/Users/18929/Desktop/博客项目/项目图片/01.jpg");
	if (ImageBlur.empty())
	{
		printf("could not load image");
		return -1;
	}
	char input_title[] = "Input_Image";
	char output_title[] = "blur_Image";
	char gaosi_title[] = "gaosi_blur";
	blur(ImageBlur, dst, Size(3, 3), Point(-1, -1));//使用3*3的盒子进行卷积操作,Point(-1,-1)--表示指向默认中心点
	GaussianBlur(ImageBlur, gaosiBlur, Size(3, 3), 11, 11);//高斯模糊,11,11是高斯模糊的底数
	medianBlur(ImageBlur, mediaBlur, 3);//中值滤波,同中值代替中间值,3表示盒子大小3*3,有利于去除椒盐噪点
	bilateralFilter(ImageBlur, bilateralImage, 15, 150, 3);//双边滤波,15--计算区域的半径,150--计算的像素阈值范围,即像素插值150内的才计算,3--根据其来计算d,sigmaspace
	namedWindow(input_title, WINDOW_AUTOSIZE);
	imshow(input_title, ImageBlur);
	//namedWindow(output_title, WINDOW_AUTOSIZE);
	//imshow(output_title, dst);
	//namedWindow(gaosi_title, WINDOW_AUTOSIZE);
	//imshow(gaosi_title, dst);
	imshow("meida_Image", mediaBlur);
	imshow("Bilateral_Image", bilateralImage);

	//使用双边滤波模糊图像后,再通过掩膜操作提高图片锐度,即可完成ps效果
	Mat resultImg;
	Mat kernel = (Mat_<int>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
	filter2D(bilateralImage, resultImg, -1, kernel, Point(-1, -1), 0);//-1--图像深度,Point---1,-1默认为中心点,0--边框
	imshow("result_Image", resultImg);
	waitKey(0);
	return 0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值