【问题标题】:C++ OpenCV 3D DrawingC++ OpenCV 3D 绘图
【发布时间】:2019-01-30 02:30:53
【问题描述】:

我有一个大小不同的 Point3d 向量。 X 和 Y 坐标始终由图像分析决定,而 Z 始终介于 0 和 10 之间。有没有办法在仅使用 OpenCV 的情况下在 3D 空间中显示这些点?我对图形库非常陌生,希望我不必对另一个新库感到困惑。

【问题讨论】:

  • 您将不得不更详细地定义您希望如何将其可视化。鸟瞰正射投影可以像忽略 Z 坐标并绘制点一样简单(例如,通过更改适当像素的颜色来制作一个点)。 | OpenCV 中还有 Viz 模块,但您很可能必须构建自己的 OpenCV 副本才能启用它。
  • 看下面的答案:here
  • 到目前为止,我一直在处理 2D 图像,我希望能够从之前获取各个点,然后将它们绘制在屏幕上。然后,如果可能的话,我希望能够旋转该图像以显示更多点。我的主要问题是了解如何绘制 Z 维度或如何包含允许旋转的相机。
  • 不认识自己,但我发现了这个:here
  • 这个没用吗?:OpenCV Viz

标签: c++ opencv 3d


【解决方案1】:

您可以使用 OpenCV Viz 来可视化 3d 点。

为了使用 viz 进行可视化,您需要先构建 VTK,然后从 source 构建 OpenCV,启用 WITH_VTK。

然后您可以将 3D 点可视化如下。

viz::Viz3d window; //creating a Viz window
//Displaying the Coordinate Origin (0,0,0)
window.showWidget("coordinate", viz::WCoordinateSystem(100));
//Displaying the 3D points in green
window.showWidget("points", viz::WCloud(pts3d, viz::Color::green()));
window.spin();

输入的pts3D可以是vector<Point3d>, vector<Point3f>, vector<Point3i>, a Mat with 3 channels, Mat3f, Mat3d, Mat3i

【讨论】:

  • 有人知道如何将其翻译成 python 吗?
猜你喜欢
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多