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

18四/090

数字图像处理(三)——高斯噪声

椒盐噪声相似,高斯噪声(gauss noise)也是数字图像的一个常见噪声,产生该噪声的算法也很简单。
上次说过,椒盐噪声是出现在随机位置、噪点深度基本固定的噪声,高斯噪声与其相反,是几乎每个点上都出现噪声、噪点深度随机的噪声。
该噪声效果如下:

output.jpg

这个算法比较简单,需要注意,颜色值不要超出范围(0-255),不然效果很可怕……
代码如下:


    BmpPixmap &
BmpPixmap::gauss (int level)
{
    assert (level >= 0);

    BmpPixmap *temp = new BmpPixmap (*this);
    int k, rand_temp, pixel [3];
    /*-----------------------------------------------------------------------------
     *  Init the random seed with time.
     *-----------------------------------------------------------------------------*/
    srand (time (NULL));
    /*-----------------------------------------------------------------------------
     *  Salt & Pepper.
     *-----------------------------------------------------------------------------*/
    for (i = 0; i < height; i++) {
        for (j = 0; j < width; j++) {
            rand_temp = rand () % level - level / 2;
            pixel [0] = temp->pdata [i][j]->get_blue () + rand_temp;
            pixel [1] = temp->pdata [i][j]->get_green () + rand_temp;
            pixel [2] = temp->pdata [i][j]->get_red () + rand_temp;
            for (k = 0; k < 3; k++) {
                if (pixel [k] < 0) {
                    pixel [k] = 0;
                } else if (pixel [k] > 255) {
                    pixel [k] = 255;
                }
            }
            temp->pdata [i][j]->set (pixel [0], pixel [1], pixel [2]);
        }
    }
    return *temp;
}  /* -----  end of method BmpPixmap::gauss  ----- */

转载请注明:转自K.I.S.S. - 简单哲学 - 数字图像处理(三)——高斯噪声

分享家:Addthis中国

你可能对这些感兴趣:

  1. 数字图像处理(一)——椒盐噪声
  2. 数字图像处理(四)——均值滤波
  3. 数字图像处理(二)——中值滤波
  4. C++ 中出现“不能将成员函数声明为有静态链接“的解决方法

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

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

发表评论