// 将与threejiedian相连的边的顶点设置为绿色\nfor (const auto& edge : result)\n{\n if (std::find(threejiedian.begin(), threejiedian.end(), edge.src) != threejiedian.end() ||\n std::find(threejiedian.begin(), threejiedian.end(), edge.tgt) != threejiedian.end())\n {\n colored_cloud->points[edge.src].r = 0;\n colored_cloud->points[edge.src].g = 255;\n colored_cloud->points[edge.src].b = 0;\n colored_cloud->points[edge.tgt].r = 0;\n colored_cloud->points[edge.tgt].g = 255;\n colored_cloud->points[edge.tgt].b = 0;\n }\n}\n\n// 将y值最大的threejiedian节点用绿色小球显示\nint max_y_index = -1;\nfloat max_y = std::numeric_limits::min();\nfor (const auto& index : threejiedian)\n{\n const auto& point = cloud->points[index];\n if (point.y > max_y)\n {\n max_y = point.y;\n max_y_index = index;\n }\n}\ncolored_cloud->points[max_y_index].r = 0;\ncolored_cloud->points[max_y_index].g = 255;\ncolored_cloud->points[max_y_index].b = 0;\n\n// 将最小生成树中出现一次的节点设置为红色\nstd::unordered_map<int, int> node_count;\nfor (const auto& edge : result)\n{\n node_count[edge.src]++;\n node_count[edge.tgt]++;\n}\nfor (const auto& pair : node_count)\n{\n if (pair.second == 1)\n {\n colored_cloud->points[pair.first].r = 255;\n colored_cloud->points[pair.first].g = 0;\n colored_cloud->points[pair.first].b = 0;\n }\n}\n\n// 使用PCL库进行可视化\n#include <pcl/visualization/cloud_viewer.h>\n\npcl::visualization::CloudViewer viewer("Colored Point Cloud");\nviewer.showCloud(colored_cloud);\nwhile (!viewer.wasStopped()) {\n // 等待用户关闭可视化窗口\n}

点云数据可视化:使用颜色标记最小生成树和最高点

原文地址: https://www.cveoy.top/t/topic/pVUB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录