我可以使用什么技术从图像中删除无用的信息?

信息处理 图像处理 图片 图像分割
2022-02-02 10:48:07

有没有办法从图像中删除无用的信息(不重要的细节)?

例如,如果我们有一个特定的图像,那么它包含有用和无用的信息。如果可以直接识别该图像而没有无用信息,则可以去除不必要的信息(例如,照明、一些噪声、变化等)。

3个回答

这取决于您如何定义噪声以及您的图像具有什么样的噪声。不同的滤波器适用于不同种类的噪声。在这些过滤器中,维纳过滤器通常通过调整自身以适应局部图像方差来使用。以及一种称为块匹配和 3D 滤波 (BM3D) 的新方法,其中 Weiner 滤波器用于通过块匹配在 3D 变换域中通过收缩来优化去噪参数。他们的研究论文非常值得阅读和研究。

在此处输入图像描述

关于照明差异,您可能需要通过创建均匀分布的白色背景来平衡差异。这篇使用高斯模糊方法的帖子这篇使用腐蚀后扩张的帖子可能会对您有所帮助。

在此处输入图像描述

尽管您没有花一分钟时间研究这个问题,但我会发布一个答案。有多种方式;我将尝试使用Mathematica. 所以,首先我们需要一个图像。

img = ExampleData[{"TestImage", "Mandrill"}]

数学图形

然后我们应用DiscreteWaveletTransform使用HaarWavelet

dwd = DiscreteWaveletTransform[img]

我们绘制转换

WaveletImagePlot[dwd]

小波图像图

我们对其进行阈值化,即根据某些标准去除噪声

wtd = WaveletThreshold[dwd]

再次绘制转换和过滤

WaveletImagePlot[wtd]

小波

我们现在反转变换

iwd = InverseWaveletTransform[wtd]

数学图形

并可视化两个图像之间的差异

ImageDifference[iwd, img]

数学图形

信号(或图像)中包含的信息量通常与熵有关。如果您计算图像的每像素熵,那么您可以使用阈值来删除或保留重要性。过滤后的熵如下所示: 局部熵过滤的图像

请注意,在此图像中,白色像素表示较高的熵,而较低的像素表示不重要或缺乏信息。