国内优秀企业网站欣赏双语网站价格
pcl1.15.0的版本变化很大,其中有一个地方需要设置成如下图所示
如果不设置生成的时候可能有以下错误:
严重性 代码 说明 项目 文件 行 禁止显示状态 详细信息
错误 C1189 #error: "Potential runtime error due to aligned malloc mismatch! You likely have to compile your code with AVX enabled or define EIGEN_MAX_ALIGN_BYTES=32 (to silence this message at your own risk, define PCL_SILENCE_MALLOC_WARNING=1)" Project5Pcl1.15.0 D:\PCL1.15.0\include\pcl-1.15\pcl\memory.h 61
pcl1.15.0其中一个变化是io.h放在common里面了
可用的测试代码:
#include<pcl/visualization/cloud_viewer.h>
#include<iostream>//标准C++库中的输入输出类相关头文件。
#include<pcl/common/io.h>
#include<pcl/io/pcd_io.h>//pcd 读写类相关的头文件。
#include<pcl/io/ply_io.h>
#include<pcl/point_types.h> //PCL中支持的点类型头文件。
int user_data;
using std::cout;void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{viewer.setBackgroundColor(1.0, 0.5, 1.0); //设置背景颜色
}int main() {pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);char strfilepath[256] = "d:\\rabbit.pcd";if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) {cout << "error input!" << endl;return -1;}cout << cloud->points.size() << endl;pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象viewer.showCloud(cloud);viewer.runOnVisualizationThreadOnce(viewerOneOff);system("pause");return 0;
}
#include <vtkNew.h>
#include <vtkPointSource.h>
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/io/vtk_lib_io.h>
#include <pcl/point_types.h>
#include <boost/thread/thread.hpp>
#include <pcl/visualization/pcl_visualizer.h>int main(int, char* [])
{// -------------------------生成位于球面上的点云---------------------------vtkNew<vtkPointSource> pointSource;pointSource->SetCenter(0.0, 0.0, 0.0);pointSource->SetNumberOfPoints(5000);pointSource->SetRadius(5.0);pointSource->SetDistributionToShell(); // 设置点分布在球面上。pointSource->Update();// ---------------------------转为PCD点云并保存----------------------------vtkSmartPointer<vtkPolyData> polydata = pointSource->GetOutput(); // 获取VTK中的PolyData数据pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);pcl::io::vtkPolyDataToPointCloud(polydata, *cloud);pcl::PCDWriter w;w.writeBinaryCompressed("sphere.pcd", *cloud);// -------------------------------结果可视化-------------------------------boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));viewer->setBackgroundColor(0, 0, 0);viewer->setWindowName(u8"生成球形点云");pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> fildColor(cloud, "z"); // 按照z字段进行渲染viewer->addPointCloud<pcl::PointXYZ>(cloud, fildColor, "sample cloud");viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "sample cloud"); // 设置点云大小while (!viewer->wasStopped()){viewer->spinOnce(100);boost::this_thread::sleep(boost::posix_time::microseconds(100000));}return 0;
}