计算图像中的对象数
我正在研究图像处理识别某些物体的可能性,并在图像中对它们进行计数。
我将获得一张照片,我需要确定该图像中存在的盒子数量。
有没有人有任何机器视觉/图像处理库的经验,如ImageJ,斐济,JAI,jMagick,Java Vision Toolkit? 你觉得哪个最适合这份工作? 你们有什么建议? 如果可以从Java使用API,那就更好了。 谢谢。
编辑:我正在处理仓库棕色盒子。 是的我说的是常规照片。 来源通常是手机图片。
编辑2:对不起,答案得到了自动选择。 🙁
如果您必须坚持使用Java,您仍然可以使用OpenCV 。
- 如果它只是盒子,你可以使用Hough Transforms来检测它们。
- 您可以使用OpenSURF根据您提供给它的源图像来检测手机。
- 不要认为这在你的情况下是可行的: HAAR Cascades 。 您可以创建自定义HAAR分类器,但是培训过程可能非常耗时。
HTH,乔治
我从未使用过您列出的库,但我使用过OpenCV。
OpenCV是一个支持良好且经过validation的计算机视觉库。 它内置了一些function来计算图像中原始形状的数量。 它是用C ++编写的,但您可以创建一个通过JNI调用的小包装器。
RoboRealm是机器人爱好者使用的另一种经过validation的计算机视觉系统。 它是一种使用基于套接字的控制API的闭源商业产品。
在Java中,有几个项目扩展了Java Advanced Imaging API以提供计算机视觉:
- JavaVis
- java + IPJ中的图像处理 – JAI的计算机视觉扩展
- Java Vision Toolkit – JVT(编辑:opps,问题中提到了这一点。)
JavaVis有一篇论文介绍了库,比较和约束了这两个提到的库。
JavaVis具有以下function:
- 处理2D和3D图像(在这种情况下3D最相关)
- 具有用于检查潜在结果的GUI
- Matlab图像导出
另外对于java来说是NeatVision 。 与其他文档不同,该项目清晰可见文档。
这些项目都不会为您提供简单的交钥匙解决方案。 您需要了解计算机视觉的工作原理,并在照片上创建一系列处理步骤,以帮助您从视觉算法中获得最佳结果。 为此,JavaV可能是最有用的,因为它旨在教授计算机视觉。
如果您不是在谈论实时图像处理,可以向Amazon Mechanical Turk编写API。
你愿意为此开发自己的代码吗? 有几种技术可以应用和调整到您的特定问题,但我从未使用过打包的库,总是开发自己的代码。 如果您有兴趣,我可以为您提供参考。