C++ OpenCV 3D 绘图

4

我有一个Point3d向量,大小不固定。X和Y坐标始终由图像分析决定,而Z始终在0到10之间。有没有办法只使用OpenCV在3D空间中显示这些点?我对图形库非常陌生,并希望不必再去了解另一个新的库。


你需要更详细地定义你想要如何可视化这个问题。鸟瞰正交投影可以简单地忽略 Z 坐标并绘制点(例如通过更改适当像素的颜色来制作一个点)。此外,OpenCV 中还有 Viz 模块,但很可能你需要构建自己的 OpenCV 副本才能启用它。 - Dan Mašek
请查看以下答案:这里 - krjw
到目前为止,我一直在处理2D图像,我想能够取出先前的各个点并将它们绘制到屏幕上。然后,如果可能的话,我希望能够旋转该图像以显示更多的点。我的主要问题是理解如何绘制Z维度或如何包括一个允许旋转的相机。 - MichaelWatling
我不知道,但我在这里找到了答案:这里 - krjw
这个有用吗?:OpenCV可视化 - taront
1个回答

4

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

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

然后,您就可以按如下方式可视化 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>,也可以是一个具有3个通道的Mat、Mat3f、Mat3d或Mat3i。

1
有人知道如何将这个翻译成Python吗? - Tanasis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接