from:https://blog.csdn.net/uniqueyyc/article/details/79245009
安装过程中会弹出下面窗口,安装openin的时候选择PCL安装路径下的3rdParty文件夹下面。
2、配置环境变量
可能已经自动生成,最好检查一下
手动向path添加如下路径:
3、关键——vs配置
新建win32控制台应用程序,“确定”,选择“空项目”,点击“完成”
打开‘属性管理器’——点击‘添加现有属性表’,添加成功后,会多出一个PCL文件。注意图中“Debug”我要选择64位(x64)。
添加现有属性表,请下载属性表props文件进行添加:https://download.csdn.net/my
“
打开PCL文件,左侧栏选择VC++目录,右侧选择包含目录,根据自己的安装路径进行修改;选择库目录,把安装路径修改成你急安装的路径,D:\PCL 1.8.1\3rdParty\OpenNI2\Lib(这个路径下是没有lib文件的)这个路径需要修改为D:\PCL 1.8.1\3rdParty\Lib(请自己核对)
新建一个源文件,验证是否配置完毕。
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/project_inliers.h>
int main(int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_projected(new pcl::PointCloud<pcl::PointXYZ>);
// Fill in the cloud data
cloud->width = 5;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);
}
std::cerr << "Cloud before projection: " << std::endl;
for (size_t i = 0; i < cloud->points.size(); ++i)
std::cerr << " " << cloud->points[i].x << " "
<< cloud->points[i].y << " "
<< cloud->points[i].z << std::endl;
// Create a set of planar coefficients with X=Y=0,Z=1
pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients());
coefficients->values.resize(4);
coefficients->values[0] = coefficients->values[1] = 0;
coefficients->values[2] = 1.0;
coefficients->values[3] = 0;
// Create the filtering object
pcl::ProjectInliers<pcl::PointXYZ> proj;
proj.setModelType(pcl::SACMODEL_PLANE);
proj.setInputCloud(cloud);
proj.setModelCoefficients(coefficients);
proj.filter(*cloud_projected);
std::cerr << "Cloud after projection: " << std::endl;
for (size_t i = 0; i < cloud_projected->points.size(); ++i)
std::cerr << " " << cloud_projected->points[i].x << " "
<< cloud_projected->points[i].y << " "
<< cloud_projected->points[i].z << std::endl;
system("pause");
return (0);
}
运行,可能会出错:
解决方法是:打开属性管理器——常规,将SDL检查设置为“否”。
运行结果: