【OpenCV3】平滑处理详解

本文详细介绍了OpenCV3中的四种平滑处理方法:cv::blur()、cv::boxFilter()、cv::medianBlur()和cv::GaussianBlur(),以及它们的参数和应用。平滑处理常用于去除噪声、相机失真和图像分辨率降低。cv::blur()和cv::boxFilter()属于盒滤波器,其中boxFilter()更通用。cv::medianBlur()利用中值滤波,而cv::GaussianBlur()基于高斯核,提供可调节的sigma值。最后,cv::bilateralFilter()是双边滤波,结合了颜色和空间信息,适用于保留边缘的平滑。
摘要由CSDN通过智能技术生成

“平滑”通常又称“模糊”,是一种简单常用的图像处理操作。进行平滑处理的原因有很多,但通常是用来去除噪声和相机失真,平滑在按照一定的原理来降低图像分辨率中也有重要应用。

OpenCV2和OpenCV3中提供了5种不同的平滑处理方法,每一种都有自己相关的库函数,每一个库函数实现的平滑都略有不同。在所有的平滑操作函数中,src和dst两个参数都分别代表源图像和目标图像。除此之外,每一种平滑操作都具有特定的相关操作参数。其中,唯一的共同参数是最后的borderType,这个参数表示平滑操作的过程中如何处理图像的边缘的像素。

下面将分别对这5中平滑操作函数进行介绍。


1、cv::blur()

void cv::blur(
	cv::InputArray src, // 输入图像
	cv::OutputArray dst, // 输出图像
	cv::Size ksize, // 核大小
	cv::Point anchor = cv::Point(-1,-1), // 锚点位置
	int borderType = cv::BORDER_DEFAULT // 边界处理方法
);

cv::blur()又被称作“简单平滑”操作,输出图像中的每个像素值,为窗口中(如核)所有像素的简单平均值,窗口的大小通过ksize参数指定。参数anchor可以用来指定内核是如何与被计算的像素对齐的。默认情况下,anchor的取值为cv::Point(-1,-1),这意味着,核相对于滤波器居中。在多通道图像中,每个通道需要分别计算。

cv::blur()实际上是下面要介绍的cv::boxFilter()的一个特例,实际平滑效果如下。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值