【问题标题】:Detect multiple 3d shapes in an image检测图像中的多个 3d 形状
【发布时间】:2016-11-18 20:26:15
【问题描述】:

我目前正在为我最近开始的一个项目学习 OpenCV,并且需要检测图像中的 3D 盒子(想象一下大塑料盒子可能是 3 英尺 x 2 英尺 x 2 英尺)。我使用 inRange 方法创建了一个图像,其中只有我想检测的框,但我不确定从那里去哪里。我想从 OpenCV 获得这些盒子的 3D 表示,但我不知道如何。我找到了很多教程来解释如何只用一个对象来做到这一点(我已经成功地做到了),但我不知道如何在一张图像中使用多个框。

谢谢!

【问题讨论】:

  • 欢迎来到 SO!请发布您尚未使用的代码的关键 sn-p 以及 minimal main() program that runs that snippet。为了方便回答者,最好从构建日志中添加包含编译器调用的行。
  • 这些盒子是否站在同一个平面上?

标签: c++ opencv image-processing computer-vision


【解决方案1】:

如果您已经建立了一种适用于一个对象的方法,您可能只是采用分而治之的方法:通过将具有多个框的图像分成具有一个对象的多个图像,将您的问题分成几个小问题.

  1. 将对象检测器应用于您的图像。 This Tutorial on Object Detection may help you。使用 OpenCV 快速搜索对象检测也提供了this。
  2. 确定对象的边界框(x 和 y 坐标的最小值/最大值,可能会添加一些边框边距)
  3. 裁剪边界框以获取单个对象图像
  4. 将您已经工作的方法应用于单个对象图像集

在重叠的情况下,裁剪后的图像可能需要一些处理来隔离“主要”对象。 4. 是否有效取决于您的方法对遮挡的鲁棒性。


我在寻找对象检测时偶然发现了您的问题。自从您提出问题以来已经有一段时间了,但由于这是一个公共知识库,因此有关此主题的讨论可能仍然对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2020-04-21
    • 2019-07-27
    • 2011-07-28
    • 1970-01-01
    • 2015-12-24
    • 2018-01-20
    • 2011-12-24
    • 2014-03-25
    相关资源
    最近更新 更多