K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

21四/090

数字图像处理(四)——均值滤波

上次提到产生高斯噪声的算法,我们知道,椒盐噪声是可以通过中值滤波来修复的,高斯噪声也可以通过均值滤波来还原。
顾名思义,均值滤波也是构建一个 n*n 的模板,然后取其平均值来替代模板中间的值。这样做出的效果明显不如用中值滤波修复椒盐噪声的效果好,不过当 n 取很大值的时候,图片看起来像是高斯模糊,不知道是不是一个原理……
看效果,n=3 时:

gauss3.jpg

n=11 时:

gauss11.jpg

算法更加简单,有以前的基础不成问题:

    BmpPixmap &
BmpPixmap::mean_filter (int n)
{
    assert (n >= 3 && n % 2);

    int ii, jj, nn, sum [3];
    BmpPixmap *temp = new BmpPixmap (*this);
    for (i = n / 2; i < height - n / 2; i++) {
        for (j = n / 2; j < width - n / 2; j++) {
            for (nn = 0; nn < 3; nn++) {
                sum [nn] = 0;
            }
            /*-----------------------------------------------------------------------------
             *  Calculate the average of the model.
             *-----------------------------------------------------------------------------*/
            for (ii = i - n / 2, nn = 0; ii <= i + n / 2; ii++) {
                for (jj = j - n / 2; jj <= j + n / 2; jj++, nn++) {
                    sum [0] += pdata [ii][jj]->get_blue ();
                    sum [1] += pdata [ii][jj]->get_green ();
                    sum [2] += pdata [ii][jj]->get_red ();
                }
            }
            temp->pdata [i][j]->set (sum [0] / (n * n), sum [1] / (n * n), sum [2] / (n * n));
        }
    }
    return *temp;
}  /* -----  end of method BmpPixmap::mean_filter  ----- */

转载请注明:转自K.I.S.S. - 简单哲学 - 数字图像处理(四)——均值滤波

分享家:Addthis中国

你可能对这些感兴趣:

  1. 数字图像处理(二)——中值滤波
  2. 数字图像处理(三)——高斯噪声
  3. 数字图像处理(一)——椒盐噪声
  4. C++ 中出现“不能将成员函数声明为有静态链接“的解决方法
  5. 使用 PolicyKit 进行身份认证(上)

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

标签: , 发表评论
评论 (0) 引用 (0)

还没有评论.


发表评论


还没有引用.