使用Java进行目标检测/跟踪

4

我打算使用Java进行一些图像处理,并将在Ubuntu上使用Eclipse开发。因此,这是我的目标:

从灰度图像中,我希望能够检测到特定大小的对象并在其周围绘制矩形框架。但是,问题在于这个图像是从热成像相机捕获的,因此为了侦测人体热量,像素值将在某个范围内。

在检测到图像中的所有对象之后,我需要对它们进行计数,但这是后话。

所以这就是我的挑战。我可以使用哪些工具/API/开放类来完成这样的操作?我找到了一些基本的操作,例如旋转、裁剪和调整大小。但还没有真正找到我能用的东西。

我应该去哪里寻找/开始?

非常感谢您的帮助!


真的吗?没有人知道我应该如何处理这个问题或使用哪些工具吗? - AtharvaI
3个回答

3

ImageJ非常有用: http://rsbweb.nih.gov/ij/

虽然ImageJ是一个图形用户界面(GUI),但您也可以将其用作库(我也这样做)

您将需要搜索适当的对象检测插件(但有一些插件正在流传...)

祝你好运! Eelco


嗨Eelco,非常感谢。我四处寻找并发现了OpenCV,它也是跨平台的,并且有更多的文档和支持社区。我选择了C/C++中的OpenCV。 - AtharvaI

1

0

这篇文章完整地解释了你正在寻找的算法,附带的源代码在这里。你可以在这个视频中看到它的运行情况

(免责声明:我是作者;但我确实认为这非常有用,并且自己已经成功地使用了这个算法很多次。)

该算法跟踪移动物体,找到它们的边界矩形(应用程序绘制),计算每个对象中的像素数,在帧之间将它们相关联作为同一对象(具有int ID)。由于该算法是针对彩色输入设计的,因此您可能需要将灰度图像进行微小转换,将灰度值复制到所有三个通道中的RGB。

说到商业计算机视觉应用,OpenCVPoint Cloud Library aka PCL是你最好的朋友。而像所链接的文章一样,解释了如何使用OpenCV等工具来完成全栈运动跟踪。(纯Java实现展示了它如何逐个像素地工作。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接