计算图像中的对象数

我正在研究图像处理识别某些物体的可能性,并在图像中对它们进行计数。

我将获得一张照片,我需要确定该图像中存在的盒子数量。

有没有人有任何机器视觉/图像处理库的经验,如ImageJ,斐济,JAI,jMagick,Java Vision Toolkit? 你觉得哪个最适合这份工作? 你们有什么建议? 如果可以从Java使用API​​,那就更好了。 谢谢。

编辑:我正在处理仓库棕色盒子。 是的我说的是常规照片。 来源通常是手机图片。

编辑2:对不起,答案得到了自动选择。 🙁

如果您必须坚持使用Java,您仍然可以使用OpenCV 。

  1. 如果它只是盒子,你可以使用Hough Transforms来检测它们。
  2. 您可以使用OpenSURF根据您提供给它的源图像来检测手机。
  3. 不要认为这在你的情况下是可行的: HAAR Cascades 。 您可以创建自定义HAAR分类器,但是培训过程可能非常耗时。

HTH,乔治

我从未使用过您列出的库,但我使用过OpenCV。

OpenCV是一个支持良好且经过validation的计算机视觉库。 它内置了一些function来计算图像中原始形状的数量。 它是用C ++编写的,但您可以创建一个通过JNI调用的小包装器。

RoboRealm是机器人爱好者使用的另一种经过validation的计算机视觉系统。 它是一种使用基于套接字的控制API的闭源商业产品。

http://opencv.willowgarage.com/wiki/FullOpenCVWiki

http://www.roborealm.com/index.php

在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。

你愿意为此开发自己的代码吗? 有几种技术可以应用和调整到您的特定问题,但我从未使用过打包的库,总是开发自己的代码。 如果您有兴趣,我可以为您提供参考。