【问题标题】:Draw 3D bounding box of object in 2D (Processing)在 2D 中绘制对象的 3D 边界框(处理中)
【发布时间】:2020-07-23 13:29:34
【问题描述】:

我想在一个 3d 对象周围绘制一个 2d 框,最后它应该如下图所示:

我已经绘制了一个 3d 框并确定了角(红球),但是我不知道下一步该做什么或下一步应该采取哪些步骤。

如果有人能提供一种算法或接下来的几个步骤来继续研究它,那将是一种乐趣。

提前致谢:)

【问题讨论】:

  • 现在,您必须将所有 8 个框角映射到 2d(例如,使用 3d 渲染器的视图和投影矩阵),以确定最小和最大 x 和 y 坐标。然后你可以在 2d 中绘制盒子(绿色的)。 我已经绘制了一个 3d Box 并确定了角(红球) 如何?你用什么3D渲染? OpenGL?
  • @Scheff 谢谢!对于角点确定,我使用的是 screenX 和 screenY。
  • @Rabbid76 我读了标签文本,但和以前一样愚蠢。我认为它是在 Python 中完成的。 (看到一个语言标签我忽略了另一个。)我的错。我将谷歌处理...
  • @Scheff 我明白了。 Processing 使用 Java 语法,但有一个 Python 插件(我认为也适用于其他一些语言)。至少有p5.js (JavaScript)

标签: python 3d processing


【解决方案1】:

假设 xy 都有 8 个坐标

x=[123,455,544,677,345,333,677,322]
y=[734,543,654,234,132,654,321,123]

并假设这两个列表是 3D 框的 x-y 坐标,则可以通过以下代码找到其 2D 框:

x_min=min(x)
y_min=min(y)
x_max=max(x)
y_max=max(y)

如果你这样做

cv2.rectangle(image,(x_min,y_min),(x_max,y_max),(255,0,0),1)

那么你就会得到结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 2021-05-28
    • 1970-01-01
    • 2017-12-07
    • 2022-01-02
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多