【问题标题】:Removing background noise from image从图像中去除背景噪声
【发布时间】:2011-07-18 16:17:59
【问题描述】:

我有两张图片。第一个是背景噪音+内容,第二个是背景噪音。我想从第一张图像中减去第二张图像以消除内容中的噪音。图像为灰度。

我对处理这个问题的各种方法以及数学中灰度值的处理感到困惑。

1) 首先,我们可以使用ImageSubtract[imageOne, imageTwo]

2) 通过使用ImageDifference[imageOne, imageTwo],我们避免了负像素值,但是在使用ImageSubtract 时我们必须有负像素的地方,图像是人造的。

3)我们使用ImageData获取每个像素的值,减去每个对应的值,然后使用Image显示结果。

这些方法中的每一种都会产生不同的结果。

【问题讨论】:

  • 请将您的图片上传到某个地方...

标签: image-processing wolfram-mathematica


【解决方案1】:

对于真实数据类型的图像,像素值可以为负数,这三个操作是等价的:

real1 = Image[RandomReal[1, {10, 10}]];
real2 = Image[RandomReal[1, {10, 10}]];

ImageData[ImageDifference[real1, real2]] ==
Abs@ImageData[ImageSubtract[real1, real2]] ==
Abs[ImageData[real1] - ImageData[real2]]

Out[4]= True

但整数数据类型的图像并非如此。那是因为这样的图像中只能存储正值,而减法的负结果在输出图像中被剪裁为零:

int1 = Image[RandomInteger[255, {10, 10}], "Byte"];
int2 = Image[RandomInteger[255, {10, 10}], "Byte"];

这仍然是True

ImageData[ImageDifference[int1, int2]]
== Abs[ImageData[int1] - ImageData[int2]]

但是这两个是不同的,因为剪辑:

ImageData[ImageDifference[int1, int2]]
== Abs@ImageData[ImageSubtract[int1, int2]]

将两个输入图像都转换为“Real”或“Real32”数据类型时,会产生不那么令人费解的结果。

【讨论】:

  • 比我的完整得多,现在我已经删除了,因为它是多余的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 2015-09-16
  • 2013-02-25
  • 2014-05-22
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多