OpenCV 中的滤波是一种用于图像处理的常用技术,主要用于去噪、平滑、边缘检测、增强图像特征等操作。滤波的基本思想是通过卷积操作,将图像中每个像素与其周围像素值按照一定的权重关系进行组合,从而获得新的像素值。下面我将详细介绍 OpenCV 中常用的几种滤波方法。
1. 平均滤波 (Averaging Filter)
平均滤波是一种简单的线性滤波方法,通常用于平滑图像,减少图像噪声。它通过对滤波窗口内的所有像素取平均值来替换中心像素值,适合快速平滑处理,但容易模糊图像中的细节和边缘。
代码实现:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 读取图像
Mat image = imread("image.jpg");
// 检查图像是否成功加载
if (image.empty()) {
return -1;
}
// 使用平均滤波
Mat blurred_image;
blur(image, blurred_image, Size(5, 5)); // Size(5, 5)表示滤波核的大小
// 显示结果
imshow("Original Image", image);
imshow("Average Filter", blurred_image);
waitKey(0);
return 0;
}
主要参数:
Size(5, 5)
:滤波核的大小,数值越大,平滑效果越明显,但图像细节损失越多。blur()