均值滤波

作者: 渔父歌 | 来源:发表于2019-04-11 23:41 被阅读0次

均值滤波使用像素点周围一定区域的像素的均值替换当前像素点的值。均值滤波可以平滑图像,但是对噪声几乎没有效果,最多只能让噪点变得更模糊。

如果图片中某一块像素的数值如下,取扫描窗口大小为3:
120 130 134
122 123 122
125 146 124

则使用均值滤波后中间像素点的值替换为 (120+130+134+122+123+122+125+146+124) / 9=1146 / 9 = 127

均值滤波的C语言实现为:

void meanBlur(Mat img, Mat dst, int ksize) {
    //ksize必须为奇数
    if (ksize % 2 == 0 && (ksize - 1) / 2 - 1 < img.cols && (ksize - 1) / 2 - 1 < img.rows) {
        return;
    }

    //边到中心点的距离
    int offset = (ksize - 1) / 2;
    int* window = new int[ksize * ksize];
    for (int i = offset; i < img.cols - offset; i++) {
        for (int k = offset; k < img.rows - offset; k++) {
            //获取周围的元素
            int count = 0;
            for (int n = i - offset; n < i + offset + 1; n++) {
                for (int m = k - offset; m < k + offset + 1; m++) {
                    window[count] = int(img.at<uchar>(m, n));
                    count++;
                }
            }
            //求和
            int sum = 0;
            for (int n = 0; n < count; n++) {
                sum += window[n];
            }

            dst.at<uchar>(k, i) = sum / (ksize*ksize);
        }
    }

    delete[] window;
}

相关文章

  • opencv python版-lesson 16

    均值滤波,高斯滤波,双边滤波

  • 7.2 方框滤波

    OpenCV还提供了方框滤波方式,与均值滤波的不同在于,方框滤波不会计算像素均值,在均值滤波中,滤波结果的像素值是...

  • 55. 高斯均值滤波

    本文使用高斯滤波api和均值滤波的源码实现图像滤波 高斯滤波: 结果如下: 均值滤波: 实现步骤: 读取原图片 指...

  • 10高斯均值滤波

    高斯滤波_模块去噪声 均值滤波_源码

  • OpenCV For iOS(六)方框、均值、高斯、中值、双边滤

    本节主要记录OpenCV 两类五种常见的滤波方式: 线性滤波:方框滤波、均值滤波、高斯滤波非线性滤波: 中值滤波、...

  • 均值滤波

    均值滤波使用像素点周围一定区域的像素的均值替换当前像素点的值。均值滤波可以平滑图像,但是对噪声几乎没有效果,最多只...

  • 均值滤波

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第7...

  • 7.6 2D卷积

    OpencV提供了多种滤波方式,来实现平滑图像的效果,例如均值滤波、方框滤波、高斯滤波、中值滤波等,大多数滤波方式...

  • 高斯滤波

    高斯滤波和均值滤波的原理一样,不过在均值滤波中像素点的权重都一样,而在高斯滤波中越靠近中心的像素点的权重越大,具体...

  • 009-Opencv笔记-高斯双边模糊-矩阵掩膜

    中值滤波 中值滤波对椒盐噪声有很好的抑制作用 均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重 ...

网友评论

    本文标题:均值滤波

    本文链接:https://www.haomeiwen.com/subject/ymbfwqtx.html