处理挑战性图像的想法

时间:2014-05-20 14:20:14

标签: opencv image-processing noise

我正在处理作为3D传感器输出的红外图像。这些传感器投射红外线图案以绘制深度图,因此,红外图像有许多白点,降低了其质量。因此,我希望处理此图像以使其更平滑,以便能够检测到放置在表面中的对象。

原始图片如下所示: enter image description here

我的目标是拥有这样的东西(我用手阻挡红外线投射器获得): enter image description here

“开放式”形态操作确实会消除一些噪音,但我认为首先应该有一些解决白点的噪音消除操作。

有什么想法吗?

我应该提到减少噪音的算法必须实时运行。

4 个答案:

答案 0 :(得分:4)

中值滤波器将是我的第一次尝试......可能接着是高斯模糊。这真的取决于你之后想做什么。

例如,这是在5x5中值滤波器和5x5高斯模糊之后的原始图像:

pic

答案 1 :(得分:3)

图像的主要难点是白点的大半径。 中位数和形态滤波器在这里应该没什么用。

通常我不是这些算法的忠实粉丝,但您似乎有一个完美的用例,可以在功能空间上使用草图和振荡组件分解图像。 基本上,这些算法旨在求解接近观察图像的类似卡通的图像X,并且仅通过去除一些振荡纹理而与Y不同。 您可以找到相关论文和算法的列表here

  

(免责声明:我不是JérômeGilles,但我认识他,我知道   他的大多数算法都是在普通的C中实现的,所以我认为大部分都是   使用OpenCV实现它们很实用。)

如果你想先尝试更简单的实现,你可以尝试其他方法:

  • 获取输入图像和模糊版本之间的差异,看它是否强调点,在这种情况下,您可以轻松找到并标记它们。此部分的输出可能已足够,但您可能还想使用inpainting填充上一个点的位置,
  • 或应用各向异性扩散(如Rudin-Osher-Fatemi方程)以查看点是否消失。尽管它具有明显的复杂性,但通过在this paper中应用算法,可以在OpenCV中轻松有效地实现这种扩散。电视传播也可以用于前一项的修复步骤。

答案 2 :(得分:0)

IR投影图案是固定的还是随时间变化? 在第二种情况下,您可以尝试利用点的移动。

例如,您可以获取一系列图像,并将结果图像的每个像素分配给序列的最小值(或非常低百分位数)。

修改:here is a Python script您可能想尝试

答案 3 :(得分:0)

我对降噪的主要观点是要有一个更清晰的图像,这样就可以更容易地检测到物体。然而,当我试图找到问题的解决方案时,我意识到使用动态噪声消除算法从图像中去除所有噪声是不现实的,因为大多数图像实际上是噪声..所以我不得不尽管有这些条件,找到对象。这是我的方法

1 - 初始图片 1

2 - 背景减法,然后打开操作以平滑噪音 2

3 - 二进制阈值 3

4 - 形态操作接近确保物体没有边缘不连续(薄物体必需)

4

5 - 填充孔+打开形态操作以消除小噪声斑点

5

6 - 检测 6