以下是一种使用PCL 1.8.1运行的步骤,实现了搜索PLY文件中骨架中y值最大的连接节点,将其标记为W,并进行可视化,最后输出为新的PLY文件。

#include <pcl/point_types.h>
#include <pcl/io/ply_io.h>
#include <pcl/visualization/pcl_visualizer.h>

typedef pcl::PointXYZ PointT;

int main()
{
    // 读取PLY文件
    pcl::PointCloud<PointT>::Ptr cloud(new pcl::PointCloud<PointT>);
    pcl::io::loadPLYFile("D:\\DIANYUNWENJIANJIA\\kruskal_ply.ply", *cloud);

    // 寻找骨架中y值最大的连接节点
    PointT maxPoint;
    float maxY = -std::numeric_limits<float>::infinity();
    for (const auto& point : cloud->points) {
        if (point.y > maxY) {
            maxY = point.y;
            maxPoint = point;
        }
    }

    // 标记最大节点为W
    maxPoint.label = 'W';

    // 可视化
    pcl::visualization::PCLVisualizer viewer("PCL Viewer");
    viewer.setBackgroundColor(0, 0, 0);
    viewer.addPointCloud(cloud, "cloud");
    viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 1, 1, 1, "cloud");
    viewer.addText3D("W", maxPoint, 0.1, 1, 1, 1, "label");
    viewer.spin();

    // 输出PLY文件
    pcl::io::savePLYFile("D:\\DIANYUNWENJIANJIA\\Wdianbiaoji_ply.ply", *cloud);

    return 0;
}

请将上述代码保存为.cpp文件,并使用CMake进行编译链接。确保在编译时已正确配置PCL 1.8.1,并将相关头文件和库文件路径设置正确

帮我写一个pcl181可以运行的这一步骤输入DDIANYUNWENJIANJIAkruskal_plyply搜索骨架中y值最大的连接节点标记为W进行可视化然后输出DDIANYUNWENJIANJIAWdianbiaoji_plyply

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

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