使用OpenCV进行红外图像分割

Infrared images segmentation using OpenCV

本文关键字:图像分割 OpenCV 使用      更新时间:2023-10-16

假设我有一系列红外图片,任务是将人体与图片中的其他物体隔离开来。问题是来自其他相对较热的物体(如灯及其"热"阴影)的噪音。

像二进制和/或Otsu这样的简单阈值方法在困难(嘈杂)的图片上没有给出很好的结果,所以我决定手动完成。

以下是一些示例

结果并不可怕,但我认为可以改进。在这里,我简单地通过HSV的色调值选择像素。或多或少,热像素位于该区域:色相<50,色相> 300。我在这里主要关心的是这些粉红色像素,它们有时是灯的噪音,但有时是人体的一部分,所以我不能简单地丢弃它们而不会对结果造成重大损害:例如,在左图上,这将"破坏"左手的一半等等。作为最后的手段,我可以使用一些强大的过滤和侵蚀,但我仍然相信有一种方法可以以某种方式告诉OpenCV:嘿,我不需要这些粉红色区域,除非它们是大型热集群的一部分。有什么想法,关键字,技巧,好文章吗?提前致谢

FIR数据可能与温度成单调比例(如果不是线性的),这应该会产生灰度图像。
您的示例使用颜色图进行着色 - 颜色仅传达单个实际信息通道。最好可以直接处理灰度图像(也许将图像重新映射到灰度)。

然后,查看是否可以将图像线性化为实际温标,以便像素值表示温度。完成此操作后,您应该能够将图像固定在您希望一个人出现的温度范围。查看相机/成像仪的数据表以了解转换公式。