使用OpenCV进行红外图像分割
Infrared images segmentation using OpenCV
假设我有一系列红外图片,任务是将人体与图片中的其他物体隔离开来。问题是来自其他相对较热的物体(如灯及其"热"阴影)的噪音。
像二进制和/或Otsu这样的简单阈值方法在困难(嘈杂)的图片上没有给出很好的结果,所以我决定手动完成。
以下是一些示例
结果并不可怕,但我认为可以改进。在这里,我简单地通过HSV的色调值选择像素。或多或少,热像素位于该区域:色相<50,色相> 300。我在这里主要关心的是这些粉红色像素,它们有时是灯的噪音,但有时是人体的一部分,所以我不能简单地丢弃它们而不会对结果造成重大损害:例如,在左图上,这将"破坏"左手的一半等等。作为最后的手段,我可以使用一些强大的过滤和侵蚀,但我仍然相信有一种方法可以以某种方式告诉OpenCV:嘿,我不需要这些粉红色区域,除非它们是大型热集群的一部分。有什么想法,关键字,技巧,好文章吗?提前致谢
FIR数据可能与温度成单调比例(如果不是线性的),这应该会产生灰度图像。
您的示例使用颜色图进行着色 - 颜色仅传达单个实际信息通道。最好可以直接处理灰度图像(也许将图像重新映射到灰度)。
然后,查看是否可以将图像线性化为实际温标,以便像素值表示温度。完成此操作后,您应该能够将图像固定在您希望一个人出现的温度范围。查看相机/成像仪的数据表以了解转换公式。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 图像的 OpenCV 复制子部分
- 图像分割 - 删除C 中不需要的像素
- 使用 REST SDK 将图像从 OpenCV 3 发送到认知人脸 API C++
- 快速节省图像到OpenCV中的磁盘
- STL容器用于简单的图像分割
- 图像调整大小与生成行人检测ROI的图像金字塔-OpenCV
- 通过BGL使用Min Cut的图像分割示例
- 图像处理 - OpenCV - 查找图像中圆的面积和中心坐标
- 基于光流的图像分割
- 图像处理(OpenCV with PHP) - exec 命令出现问题
- 使用坐标垫访问图像值(OpenCV / C++)
- 如何对齐人脸图像 c++ opencv
- 使用OpenCV进行红外图像分割
- 训练图像在openCV中意味着什么
- 锐化视频图像使用openCV
- 相机校准与有限的一组图像在OpenCV和c++
- 缩放像素的图像使用opencv库和c++
- 基于图形的图像分割
- 加载图像与openCV Mat c++