【问题标题】:Infrared images segmentation using OpenCV使用 OpenCV 进行红外图像分割
【发布时间】:2016-01-17 23:21:45
【问题描述】:

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

二进制和/或 Otsu 等简单的阈值方法在处理困难(嘈杂)的图片时效果不佳,因此我决定手动进行。

Here are some samples

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

【问题讨论】:

  • 您的示例图片看起来有一些非常清晰的边缘。您是否尝试过获取Laplacian?然后,您可以识别连接的组件并确定哪些看起来不像人类。

标签: c++ opencv image-processing computer-vision infrared


【解决方案1】:

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

然后,看看您是否可以将图像线性化为实际温度标度,以便像素值代表温度。完成此操作后,您应该能够将图像钳制到您期望一个人出现的温度范围内。请查看相机/成像器的数据表以获取转换公式。

【讨论】:

  • 谢谢你的回答,我也有类似的想法。但是无论如何,假设我有一个灰度图像,仍然可能具有与人体的一部分以及其他物体的一部分具有相同强度的区域 - 除非一个人完全赤裸。我错了吗?所以我会尝试摆脱灰色噪音而不是粉红色。所以我想尝试解决更普遍的问题——如何区分属于人体一部分的区域和具有相同强度的其他区域。我想要的太多了吗? :)
  • 好吧,一旦你可以缩小温度范围,你就会得到很好的分割。您可以使用 ML 方法进行分类,使用几何线索,例如透视图等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
  • 2016-08-17
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
相关资源
最近更新 更多