均值滤波、高斯滤波和中值滤波是图像处理中常用的三种滤波方法。它们用于平滑图像、去除噪声,但各自有不同的实现方式和效果。
均值滤波
均值滤波是一种简单的平滑滤波器,它通过对图像的每个像素及其周围像素取平均值来减少噪声。
实现原理
- 选择一个核(通常为奇数大小,如3x3, 5x5)。
- 将核中心放在当前像素位置。
- 核覆盖区域的像素值求平均值,结果作为当前像素的新值。
优点
- 实现简单,计算量小。
缺点
- 会模糊图像细节,不能很好地保留边缘。
void cv::blur(InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT);
参数解释
src
:输入图像,必须是cv::Mat
类型。dst
:输出图像,与输入图像大小和类型相同。ksize
:核的大小,Size
类型,决定了邻域的大小,例如Size(3, 3)
。anchor
:(可选)表示核的锚点,默认值为Point(-1, -1)
表示核的中心。borderType
:(可选)边界模式,用于指定如何处理边界像素。默认值为BORDER_DEFAULT
。
示例代码:
cv::Mat mypic = cv::imread("C:/Us