实现效果

步骤拆分
- 在显示菜单下建立点云颜色改变ACTION
- 由于我们上次已经建立了一个QcolorDialog类
- 我们通过槽函数唤醒这个类,选择颜色信息
- 渲染到点云模型上面去
代码实现
QAction *background_action=new QAction("背景颜色设置");
QAction *pointcloud_color_pick_action=new QAction("点云颜色设置");
display_menu->addAction(background_action);
display_menu->addAction(pointcloud_color_pick_action);
void MainWindow::pointcloud_color_change(){
dialog_color_select =new pcl_view_select_color();
QColor color=dialog_color_select->getColor();
QColor temp;
temp.setRgb(143,153,159,255);
if(!cloud.empty() && (color!=temp) )
{
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ >slected_color(cloud.makeShared(),
color.redF()*255,color.greenF()*255,color.blueF()*255);
viewer->updatePointCloud(cloud.makeShared(),slected_color,cloud_name[0]);
}
else
{
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ >slected_color(cloud.makeShared(),255,255,255);
viewer->updatePointCloud(cloud.makeShared(),slected_color,cloud_name[0]);
}
return ;
}