我正在处理作为3D传感器输出的红外图像。这些传感器投射红外线图案以绘制深度图,因此,红外图像有许多白点,降低了其质量。因此,我希望处理此图像以使其更平滑,以便能够检测到放置在表面中的对象。
原始图片如下所示:
我的目标是拥有这样的东西(我用手阻挡红外线投射器获得):
“开放式”形态操作确实会消除一些噪音,但我认为首先应该有一些解决白点的噪音消除操作。
有什么想法吗?
我应该提到减少噪音的算法必须实时运行。
答案 0 :(得分:4)
中值滤波器将是我的第一次尝试......可能接着是高斯模糊。这真的取决于你之后想做什么。
例如,这是在5x5中值滤波器和5x5高斯模糊之后的原始图像:
答案 1 :(得分:3)
图像的主要难点是白点的大半径。 中位数和形态滤波器在这里应该没什么用。
通常我不是这些算法的忠实粉丝,但您似乎有一个完美的用例,可以在功能空间上使用草图和振荡组件分解图像。 基本上,这些算法旨在求解接近观察图像的类似卡通的图像X,并且仅通过去除一些振荡纹理而与Y不同。 您可以找到相关论文和算法的列表here。
(免责声明:我不是JérômeGilles,但我认识他,我知道 他的大多数算法都是在普通的C中实现的,所以我认为大部分都是 使用OpenCV实现它们很实用。)
如果你想先尝试更简单的实现,你可以尝试其他方法:
答案 2 :(得分:0)
IR投影图案是固定的还是随时间变化? 在第二种情况下,您可以尝试利用点的移动。
例如,您可以获取一系列图像,并将结果图像的每个像素分配给序列的最小值(或非常低百分位数)。
修改:here is a Python script您可能想尝试
答案 3 :(得分:0)
我对降噪的主要观点是要有一个更清晰的图像,这样就可以更容易地检测到物体。然而,当我试图找到问题的解决方案时,我意识到使用动态噪声消除算法从图像中去除所有噪声是不现实的,因为大多数图像实际上是噪声..所以我不得不尽管有这些条件,找到对象。这是我的方法
1 - 初始图片
2 - 背景减法,然后打开操作以平滑噪音
3 - 二进制阈值
4 - 形态操作接近确保物体没有边缘不连续(薄物体必需)
5 - 填充孔+打开形态操作以消除小噪声斑点
6 - 检测