opencv viz模块进行点云显示
cv::viz::Viz3d cloudWindow("Point Cloud Viewer");
std::vector<cv::viz::WLine> cube_widget_box; 是一个立方体
cube_widget_box.clear();
cv::Point3f p0, p1, p2, p3, p4, p5;
float len = 2.2;
p0.x = 0; p0.y = 0; p0.z = 0;
p1.x = len; p1.y = 0; p1.z = 0;
p2.x = 0; p2.y = len; p2.z = 0;
p3.x = 0; p3.y = 0; p3.z = len;
cv::viz::WLine wline1(p0, p1, cv::Scalar(255, 255, 255));
cv::viz::WLine wline2(p0, p2, cv::Scalar(0, 255, 0));
cv::viz::WLine wline3(p0, p3, cv::Scalar(0, 0, 255));
cube_widget_box.push_back(wline1);
cube_widget_box.push_back(wline2);
cube_widget_box.push_back(wline3);
for (int i = 0; i < 3; i++)
{
std::string name = "box" + std::to_string(i);
cloudWindow.showWidget(name, cube_widget_box[i]);
}
#endif
cv::Mat cloudMat;
cloudMat = _pointCloud.clone();
cloudWindow.spinOnce(1, true);
if (cloudMat.empty())
{
continue;
}
cv::viz::WCloud cloud_widget(cloudMat);
cloudWindow.showWidget("cloud", loud_widget);