【问题标题】:Count the number of objects in an Image计算图像中的对象数量
【发布时间】:2010-06-01 18:15:37
【问题描述】:

我正在研究图像处理以识别某些对象并在图像中计数它们的可能性。

我将获得一张图片,我需要确定该图片中存在的框数。

是否有人对任何机器视觉/图像处理库(如 ImageJ、Fiji、JAI、jMagick、Java Vision Toolkit)有任何经验?你认为哪个最适合这份工作?你们有什么建议?如果 API 可以从 Java 中使用,那就更好了。谢谢。

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

编辑2: 很抱歉,答案被自动选择了。 : (

【问题讨论】:

标签: java language-agnostic image-processing computer-vision


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    HTH, 乔治

    【讨论】:

      【解决方案3】:

      在 Java 中,有几个项目扩展了 Java Advanced Imaging API 以提供计算机视觉:

      • JavaVis
      • java + IPJ 中的图像处理 - JAI 的计算机视觉扩展
      • Java Vision Toolkit - JVT(编辑:opps,问题中提到了这一点。)

      JavaVis 有一个paper,它介绍了该库,并与提到的其他两个库进行了比较和对比。

      JavaVis 具有以下特点:

      • 处理 2D 和 3D 图像(在这种情况下 3D 最相关)
      • 具有用于检查潜在结果的 GUI
      • Matlab 图像导出

      对于 java 来说也是NeatVision。与其他项目不同,此项目的文档清晰可见。

      这些项目都不会为您提供简单的交钥匙解决方案。您将需要了解计算机视觉的工作原理,并在照片上创建一系列处理步骤,以帮助从视觉算法中获得最佳结果。为此,JavaVis 可能最有用,因为它旨在教授计算机视觉。

      【讨论】:

        【解决方案4】:

        如果你不是在谈论实时图像处理,你可以写一个 API 到Amazon Mechanical Turk

        【讨论】:

        • 出色的横向思维解决方案。对于某些参数,也是最便宜和最可靠的参数之一。
        【解决方案5】:

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

        【讨论】:

        • 我会很感兴趣的。谢谢。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-07
        • 2022-01-27
        相关资源
        最近更新 更多