添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

cv::medianBlur 是OpenCV库中用于中值滤波(Median Filtering)的函数。中值滤波是一种非线性滤波技术,它用局部区域内像素值的中值来替代中心像素值。这种滤波方法对于去除图像中的椒盐噪声或脉冲噪声非常有效,因为中值滤波可以保留图像的边缘信息。

该函数的声明如下:

void cv::medianBlur(
    InputArray src,
    OutputArray dst,
    int ksize
  • src 是输入图像,可以是单通道或多通道的图像。
  • dst 是输出图像,与输入图像具有相同的尺寸和通道数。
  • ksize 是中值滤波的卷积核大小。通常,ksize 应该是一个奇数,因为中值是通过对区域内像素排序来计算的。
  • 以下是一个简单的例子,演示如何在C++中使用 cv::medianBlur 进行中值滤波:

    #include <opencv2/opencv.hpp>
    int main() {
        // 读取图像
        cv::Mat image = cv::imread("image.jpg");
        // 定义卷积核大小
        int ksize = 5;
        // 应用中值滤波
        cv::Mat median_filtered;
        cv::medianBlur(image, median_filtered, ksize);
        // 显示原始图像和中值滤波后的图像
        cv::imshow("Original Image", image);
        cv::imshow("Median Filtered Image", median_filtered);
        cv::waitKey(0);
        return 0;
    

    在这个例子中,cv::medianBlur 函数将图像进行中值滤波,并将结果存储在 median_filtered 中。你可以调整 ksize 的值来改变滤波的程度。需要注意,中值滤波对于去除椒盐噪声等离群值非常有效,但在某些情况下可能导致图像边缘的模糊。