失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数字图像处理(10):图像复原(去噪 C语言)

数字图像处理(10):图像复原(去噪 C语言)

时间:2021-04-10 04:25:09

相关推荐

数字图像处理(10):图像复原(去噪 C语言)

文章目录

1. 复原被加性高斯噪声污染的图像2. 复原被椒盐噪声污染的图像3. 代码实现遇到的问题

1. 复原被加性高斯噪声污染的图像

在数字图像中的高斯噪声的主要来源出现在采集期间。 由于不良照明和/或高温引起的传感器噪声。在数字图像处理中,可以使用空间滤波器来降低高斯噪声,但是当对图像进行平滑时,结果可能导致精细缩放的图像边缘和细节的模糊,因为它们也对应于被阻挡的高频。

用于噪声去除的常规空间滤波技术包括:平均(卷积)滤波,中值滤波和高斯平滑。

分析:对于加性高斯噪声污染的图像分别用了3x3算术均值滤波,3x3几何均值滤波,3x3中值滤波。可以看到几何均值滤波相对于算术均值滤波要更清晰一些。相比而言,中值滤波效果不如均值滤波效果好(在高斯噪声污染情况下)。

2. 复原被椒盐噪声污染的图像

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

分析:对于椒盐噪声污染的图像分别用了3x3算术均值滤波,3x3几何均值滤波,3x3中值滤波。可以看到对于椒盐噪声来讲,中值滤波是三个当中最好的选择。其中几何均值滤波效果最差,不适合用于此种情况。

3. 代码实现

平台:vs

语言:C语言

3x3算术均值滤波关键代码

3x3几何均值滤波关键代码

3x3中值滤波关键代码

遇到的问题

在进行3x3几何均值滤波的时候,得到的输出图像是这样的

经检查,打印其中的累乘结果,发现是因为是溢出了(用的double型)。

想了想也是,8个0~255的数相乘,结果是挺大的。于是对像素的值进行了归一化操作。

归一化操作后能出结果,但结果也不对——

最后发现是由于改成归一化后用了*=进行累乘。却忘记了赋值1 的操作。导致当有一个计算结果是0的话,后面的计算结果全是零。

添加之后,问题解决。

本工程源码已更新至github,欢迎star,欢迎PR:)

如果觉得《数字图像处理(10):图像复原(去噪 C语言)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。