我有一个大小不同的 Point3d vector 。 X 和 Y 坐标总是由图像分析决定,而 Z 总是在 0 到 10 之间。有什么办法可以在仅使用 OpenCV 的情况下在 3D 空间中显示这些点?我对图形库很陌生,希望我不必担心另一个新库。

最佳答案

您可以使用 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

关于C++ OpenCV 3D 绘图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51990401/

10-12 02:41