要将切片的颜色改成紫色,可以在调用切片函数后,修改切片点云的颜色属性,然后将其可视化。可以使用setPointCloudRenderingProperties函数来设置点云的颜色属性。修改后的代码如下:

int main()
{
    // -------------------------------加载点云数据-------------------------------
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
    pcl::io::loadPLYFile("D:\\DIANYUNWENJIANJIA\\test1_ply.ply", *cloud);
    //--------------------------------设置相关参数------------------------------
    float Delta = 0.00005; // 切片的厚度Delta
    float dPlatform = 0.00002; // 相邻切片之间的空隙
    bool OpenMap = true; // 是否启动并行加速
    // -------------------------------调用切片函数------------------------------
    std::vector<int> idx = sliceePointIndices(cloud, Delta, dPlatform, OpenMap);

    pcl::PointCloud<pcl::PointXYZ>::Ptr slicing_cloud(new pcl::PointCloud<pcl::PointXYZ>);
    pcl::copyPointCloud(*cloud, idx, *slicing_cloud);
    pcl::io::savePLYFileBinary("D:\\DIANYUNWENJIANJIA\\qiepianfenge_ply.ply", *slicing_cloud);
    
    // ------------------------------修改切片点云的颜色-------------------------------
    pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> single_color(slicing_cloud, 148, 0, 211);
    viewer->addPointCloud<pcl::PointXYZ>(slicing_cloud, single_color, "slicing cloud");
    
    // ------------------------------结果可视化-------------------------------
    boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
    viewer->setWindowName("点云切片");
    viewer->addPointCloud<pcl::PointXYZ>(slicing_cloud, "slicing cloud");
    viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 0, 0, 1, "slicing cloud"); // 将相邻切片之间的空隙设为蓝色

    while (!viewer->wasStopped())
    {
        viewer->spinOnce(100);
        boost::this_thread::sleep(boost::posix_time::microseconds(100000));
    }

    return 0;
}

在上述代码中,我使用了PointCloudColorHandlerCustom类来创建一个自定义的颜色处理器,将切片点云的颜色设置为紫色(RGB值为148, 0, 211)。

同时,我还修改了setPointCloudRenderingProperties函数的参数,将相邻切片之间的空隙的颜色设置为蓝色(RGB值为0, 0, 1)

#include iostream#include omph#include pclioply_ioh#include pclpoint_typesh#include pclcommoncommonh#include pclvisualizationpcl_visualizerh#include boostthreadthreadhpp#include pclconsoletimehusing n

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

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