【OpenCV(C++)】图像处理:线性滤波

平滑处理

平滑处理(smoothing)也称模糊处理(bluring),是一种简单且使用频率高的图像处理方法,常用来减少图像上的噪点或者失真。

图像滤波

图像滤波,指在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制。
消除图像中的噪声成分叫作图像的平滑化滤波操作

图像滤波的目的:

  1. 抽出对象的特征作为图像识别的特征模式
  2. 适应图像处理的要求,消除图像数字化时所混入的噪声

滤波处理的要求:

  1. 不能损坏图像的轮廓及边缘等重要信息
  2. 图像清晰视觉效果好

线性滤波操作

方框滤波(box Filter)

#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;

int main()
{
	Mat srcImage = imread("fg.jpg");
	imshow("[原图]方框滤波", srcImage);

	Mat dstImage;
	boxFilter(srcImage, dstImage, -1, Size(7, 7));
	imshow("[效果图]方框滤波", dstImage);
	waitKey(0);

	return 0;
}

运行效果如下:
在这里插入图片描述

均值滤波(blur)

是典型的线性滤波算法,主要方法为邻域平均法,其缺陷在于:不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪点。

blur(srcImage, dstImage, Size(7, 7));

运行效果如下:
在这里插入图片描述

高斯滤波(GaussianBlur)

就地过滤

GaussianBlur(srcImage, dstImage, Size(7, 7), 0, 0);

运行效果如下:
在这里插入图片描述

发布了26 篇原创文章 · 获赞 19 · 访问量 2984

猜你喜欢

转载自blog.csdn.net/weixin_43645790/article/details/104087320