opencv学习(十五)方框滤波boxfilter()//均值滤波blur()//高斯滤波GaussianBlur()(可以此回顾滑动条操作)

本文介绍了OpenCV中的三种滤波方法:方框滤波boxfilter(),均值滤波blur()和高斯滤波GaussianBlur()。通过详细讲解和实例应用,帮助读者深入理解图像滤波过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencv源码剖析详见参考书160-165,待深入理解

常用滤波概念

这里写图片描述
这里写图片描述

图像滤波过程

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

1,方框滤波boxfilter()

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2,均值滤波blur()

### OpenCV 中的滤波函数实现图像滤波 #### 1. **均值滤波 (boxFilterblur)** 均值滤波通过计算邻域像素的平均值来平滑图像,从而减少噪声。`cv.boxFilter()` 是一种灵活的方式,可以指定是否标准化核矩阵。 ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat src = imread("image.jpg", IMREAD_GRAYSCALE); if (src.empty()) return -1; Mat dst_box, dst_blur; // 使用 boxFilter 进行均值滤波 boxFilter(src, dst_box, src.depth(), Size(5, 5), Point(-1, -1), true); // normalized=true 表示标准均值滤波[^1] // 使用 blur 函数进行均值滤波 blur(src, dst_blur, Size(5, 5)); imshow("Original Image", src); imshow("Box Filter Result", dst_box); imshow("Blur Function Result", dst_blur); waitKey(0); return 0; } ``` --- #### 2. **中值滤波 (medianBlur)** 中值滤波是一种非线性滤波方法,适用于去除椒盐噪声而不模糊边缘细节。 ```cpp Mat dst_median; // ksize 必须为正奇数 medianBlur(src, dst_median, 5); imshow("Median Blur Result", dst_median); ``` 此代码片段展示了如何利用 `medianBlur` 对输入图像应用中值滤波。 --- #### 3. **高斯滤波 (GaussianBlur)** 高斯滤波通过对图像施加权重更高的中心像素和逐渐减小的周围像素来进行平滑处理。 ```cpp Mat dst_gauss; GaussianBlur(src, dst_gauss, Size(5, 5), 1.5); // 高斯核大小为 5x5,sigmaX=1.5 imshow("Gaussian Blur Result", dst_gauss); ``` 上述代码实现了基于高斯分布的卷积核对图像进行平滑的操作[^2]。 --- #### 4. **双边滤波 (bilateralFilter)** 双边滤波不仅考虑空间距离还考虑颜色差异,因此可以在保留边界的同时去噪。 ```cpp Mat dst_bilat; bilateralFilter(src, dst_bilat, 9, 75, 75); // d=9, sigmaColor=75, sigmaSpace=75 imshow("Bilateral Filter Result", dst_bilat); ``` 这段代码说明了如何使用 `bilateralFilter` 来执行既保护边缘又消除噪声的任务[^3]。 --- #### 5. **平方盒滤波 (sqrBoxFilter)** `sqrBoxFilter` 计算给定区域内的平方和并存储到目标图像中,通常用于后续统计分析。 ```cpp Mat dst_sqr; sqrBoxFilter(src, dst_sqr, CV_32F, Size(5, 5)); // 结果类型设置为浮点型 normalize(dst_sqr, dst_sqr, 0, 255, NORM_MINMAX, CV_8U); // 归一化以便可视化 imshow("Square Box Filter Result", dst_sqr); ``` 这里解释了如何调用 `sqrBoxFilter` 并将其结果转换回可显示的形式。 --- ### 总结 以上介绍了五种常见的图像滤波技术及其对应的 OpenCV 实现方式。每种方法都有其特定的应用场景:均值滤波适合一般降噪;中值滤波擅长去除脉冲噪声;高斯滤波提供自然过渡的效果;双边滤波兼顾边界的清晰度;而平方盒滤波则更多应用于高级统计运算之中[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值