【OpenCv】图像模糊(均值模糊,高斯模糊,中值模糊,双边模糊)

原理:

图像模糊又称为图像平滑,是图像处理中最简单和常用的操作之一,使用该操作就是为了给图像降低噪音。图像模糊处理包括:高斯模糊、均值滤波、中值滤波、双边滤波等。模糊滤波其实就是图像的卷积计算,通常这些卷积算子都是线性计算,所以又叫线性滤波。
链接:【OpenCv】图像模糊处理(滤波)
在这里插入图片描述

1. 均值滤波:
将黄色卷积核覆盖的9个像素值求平均值代替红色方框位置的像素值。
blur(src,dst,size(x,y),point(-1,-1));
Size:(用于平滑操作的核的大小)
Size(1, 15); //y方向模糊运动
point默认参数值为(-1,-1)代表将均值赋给卷积核的中间位置。
在这里插入图片描述

2. 高斯滤波:
参考:高斯滤波器详解三种模糊操作
在这里插入图片描述
在这里插入图片描述

//均值滤波,高斯滤波(避免本身很大,旁边很小,然后就总体变小;正太分布,权重分配)
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
	Mat src, src2, dst;
	src = imread("D:/PT/stone.jpg");
	if (!src.data) {
		printf("could not load image...\n");
		return -1;
	}
	double scale = 0.5;
	Size dsize = Size(src.cols * scale, src.rows * scale);
	//Mat src2 = Mat(dsize, CV_32S);
	resize(src, src2, dsize);
	char input[] = "input image";
	char output[] = "output image";

	namedWindow(input, CV_WINDOW_AUTOSIZE);
	namedWindow(output, CV_WINDOW_AUTOSIZE);
	namedWindow("output_Gaussian", CV_WINDOW_AUTOSIZE);

	imshow(input, src2);
	blur(src2, dst, Size(5, 5), Point(-1, -1));
	//Size(1, 15);//y方向模糊运动
	//Size:(用于平滑操作的核的大小)
	//Point:(锚点,默认值为Point(-1,-1)表示锚点在核的中心)
	imshow(output, dst);

	Mat dst2;
	GaussianBlur(src2, dst2, Size(5, 5), 11, 11);
	imshow("output_Gaussian", dst2);
	waitKey(0);
	return 0;
}

3. 中值滤波:
取中位数;
对去椒盐噪声有很好的效果!为什么可以去除椒盐噪声呢?因为椒盐噪声像素值要么很小为0,要么很大为255,而取中间值话,就会用替代这些,从而给图像去噪点。
在这里插入图片描述

	medianBlur(src, dst, 5);

在这里插入图片描述

中值模糊的ksize大小必须是大于1而且必须是奇数。

4. 双边滤波:
链接:OpenCV双边滤波详解及实代码实现

	bilateralFilter(dst, dst2, 15, 100, 3);
	15 –计算的半径,半径之内的像数都会被纳入计算,如果提供-1 则根据sigma space参数取值
	-150 – sigma color 决定多少差值之内的像素会被计算
 	3 – sigma space 如果d的值大于0则声明无效,否则根据它来计算d值

在这里插入图片描述
在这里插入图片描述
:因为之前一直要缩放图片,所以很不方便,索性写到这里吧:

	double scale = 0.5;
	Size dsize = Size(src.cols * scale, src.rows * scale);
	//Mat src2 = Mat(dsize, CV_32S);
	resize(src, dst, dsize);

需要注意的是缩小后再发放大会变模糊:
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值