PCL中点云可视化:坐标字段、随机、单一颜色、法向量

PCL中viewer添加并显示的点云过于简单,现总结常见的几种点云渲染方式,便于点云结果的显示。

(1)按照点云坐标x、y、z坐标值中字段给点云进行赋值渲染

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
	pcl::PointCloud<pcl::PointXYZ>::Ptr Cloud(new pcl::PointCloud<pcl::PointXYZ>);
	
	pcl::io::loadPCDFile("E:\\test_PCL\\ConsoleApplication1\\ConsoleApplication1\\test_pcd.pcd", *Cloud);//读入点云数据
 
	pcl::visualization::PCLVisualizer viewer("建筑物");
	viewer.setBackgroundColor(0, 0, 0);
	
//pcl::visualization::PointCloudColorHandlerRandom<pcl::PointXYZ> RandomColor(Cloud);
//pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> fildColor(Cloud, 0,255,0);//0-255  设置成绿色
	pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> fildColor(Cloud, "z");//按照z字段进行渲染
	viewer.addPointCloud<pcl::PointXYZ>(Cloud, fildColor, "sample");//显示点云,其中fildColor为颜色显示
	viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "sample");//设置点云大小
 
	while (!viewer.wasStopped())
	{
		viewer.spinOnce();
	}
 
 
	return 0;
}

from:https://blog.csdn.net/qq_32867925/article/details/82854937

想继续显示法向量,但是总是出错“PCL error:no override found for'vtkPloyDataMapper',按网上的教程修改,根本解决不了,心累啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

猜你喜欢

转载自blog.csdn.net/qq_30815237/article/details/86528526