win7下的PCL1.8-X64-VS2015配置(内含下载链接)

操作备忘录

注意:本文仅作学习交流使用,拒绝一切商业性目的使用,如有雷同或不足之处,敬请告知!

一、下载相关文件

1.下载PCL-1.8.0-AllInOne-msvc2015-win64.exe、属性表和PDB和测试pcd文件rabbit.pcd,其中,属性表可以不下载。

百度云链接:http://pan.baidu.com/s/1jHEtSY6  密码:nhbe

二、Windows7下安装步骤:

1.点击PCL-1.8.0-AllInOne-msvc2015-win64.exe一键安装,可以默认也可以自己选择安装路径,如本文所选择的路径D:\Program Files;

2.在安装过程中,OpenNI2在安装时会弹出界面。其他教程中说可以自己选择路径(选择第一步的),但本人安装时并没有弹出该界面,而是默认安装,但安装位置不对,需要手动将错误的文件夹下的OpenNI2移到D:\Program Files\PCL;

3.等待一段时间,则安装完成。

注意事项:在安装点击“我接收(I)”之后弹出来的对话框中一定要选择第二项AddPCL to the system PATH for all users:(如图)

2)修改新安装的PCL文件夹下个内容的对应路径,比如将PCL/include/pcl-1.8.0/pcl改成PCL/include/pcl(将pcl子文件夹拷贝到跟pcl-1.8.0同目录,再将文件夹pcl-1.8.0删掉),并修改PCL/3rdParty文件夹里面的boost(与pcl处理相同)和vtk(这个将vtk后缀去掉就好);

三、系统配置步骤

1.点击win7的控制面板->系统->高级系统设置->在系统属性的“高级选项”卡下点击“环境变量”;

2.在系统子菜单里面找到“Path”,如图:

3.点击编辑,依次加入

D:\Program Files\PCL\bin;

D:\Program Files\PCL\3rdParty\FLANN\bin;

D:\ProgramFiles\PCL\3rdParty\Qhull\bin;

D:\Program;Files\PCL\3rdParty\VTK\bin;

D:\ProgramFiles\PCL\3rdParty\OpenNI2\Tools;

注意,第一项在“一键安装”时就已经添加。

4.重启电脑

四、VS2015工程配置步骤

1.打开VS2015,创建新的win32控制台工程,建好后将平台改成X64;

2.点击项目菜单的属性,如图:

 

3.在弹出的对话框中,

 

①    点击“包含目录”下拉箭头->编辑,添加文件路径:

 

完成后点击确定;

②点击“库目录”下拉箭头->编辑,添加文件路径:

 

完成后点击确定;

4.点击连接器->输入->附加依赖项:

 

点击下拉箭头->编辑,添加下列文件(为方便读者粘贴,已做简单处理):

pcl_common_release.lib;pcl_features_release.lib;pcl_filters_release.lib;pcl_io_ply_release.lib;pcl_io_release.lib;pcl_kdtree_release.lib;pcl_keypoints_release.lib;pcl_ml_release.lib;pcl_octree_release.lib;pcl_outofcore_release.lib;pcl_people_release.lib;pcl_recognition_release.lib;pcl_registration_release.lib;pcl_sample_consensus_release.lib;pcl_search_release.lib;pcl_segmentation_release.lib;pcl_stereo_release.lib;pcl_surface_release.lib;pcl_tracking_release.lib;pcl_visualization_release.lib;libboost_atomic-vc140-mt-1_61.lib;libboost_chrono-vc140-mt-1_61.lib;libboost_container-vc140-mt-1_61.lib;libboost_context-vc140-mt-1_61.lib;libboost_coroutine-vc140-mt-1_61.lib;libboost_date_time-vc140-mt-1_61.lib;libboost_exception-vc140-mt-1_61.lib;libboost_filesystem-vc140-mt-1_61.lib;libboost_graph-vc140-mt-1_61.lib;libboost_iostreams-vc140-mt-1_61.lib;libboost_locale-vc140-mt-1_61.lib;libboost_log-vc140-mt-1_61.lib;libboost_log_setup-vc140-mt-1_61.lib;libboost_math_c99-vc140-mt-1_61.lib;libboost_math_c99f-vc140-mt-1_61.lib;libboost_math_c99l-vc140-mt-1_61.lib;libboost_math_tr1-vc140-mt-1_61.lib;libboost_math_tr1f-vc140-mt-1_61.lib;libboost_math_tr1l-vc140-mt-1_61.lib;libboost_mpi-vc140-mt-1_61.lib;libboost_prg_exec_monitor-vc140-mt-1_61.lib;libboost_program_options-vc140-mt-1_61.lib;libboost_random-vc140-mt-1_61.lib;libboost_regex-vc140-mt-1_61.lib;libboost_serialization-vc140-mt-1_61.lib;libboost_signals-vc140-mt-1_61.lib;libboost_system-vc140-mt-1_61.lib;libboost_test_exec_monitor-vc140-mt-1_61.lib;libboost_thread-vc140-mt-1_61.lib;libboost_timer-vc140-mt-1_61.lib;libboost_unit_test_framework-vc140-mt-1_61.lib;libboost_wave-vc140-mt-1_61.lib;libboost_wserialization-vc140-mt-1_61.lib;flann.lib;flann_s.lib;flann-gd.lib;flann_cpp_s.lib;flann_cpp_s-gd.lib;flann_s-gd.lib;qhull.lib;qhull_d.lib;qhullcpp_d.lib;qhullstatic.lib;qhullstatic_d.lib;qhullstatic_r.lib;qhullstatic_r_d.lib;qhull_p.lib;qhull_p_d.lib;qhull_r.lib;qhull_r_d.lib;vtkalglib-7.0.lib;vtkChartsCore-7.0.lib;vtkCommonColor-7.0.lib;vtkCommonComputationalGeometry-7.0.lib;vtkCommonCore-7.0.lib;vtkCommonDataModel-7.0.lib;vtkCommonExecutionModel-7.0.lib;vtkCommonMath-7.0.lib;vtkCommonMisc-7.0.lib;vtkCommonSystem-7.0.lib;vtkCommonTransforms-7.0.lib;vtkDICOMParser-7.0.lib;vtkDomainsChemistry-7.0.lib;vtkexoIIc-7.0.lib;vtkexpat-7.0.lib;vtkFiltersAMR-7.0.lib;vtkFiltersCore-7.0.lib;vtkFiltersExtraction-7.0.lib;vtkFiltersFlowPaths-7.0.lib;vtkFiltersGeneral-7.0.lib;vtkFiltersGeneric-7.0.lib;vtkFiltersGeometry-7.0.lib;vtkFiltersHybrid-7.0.lib;vtkFiltersHyperTree-7.0.lib;vtkFiltersImaging-7.0.lib;vtkFiltersModeling-7.0.lib;vtkFiltersParallel-7.0.lib;vtkFiltersParallelImaging-7.0.lib;vtkFiltersProgrammable-7.0.lib;vtkFiltersSelection-7.0.lib;vtkFiltersSMP-7.0.lib;vtkFiltersSources-7.0.lib;vtkFiltersStatistics-7.0.lib;vtkFiltersTexture-7.0.lib;vtkFiltersVerdict-7.0.lib;vtkfreetype-7.0.lib;vtkGeovisCore-7.0.lib;vtkhdf5-7.0.lib;vtkhdf5_hl-7.0.lib;vtkImagingColor-7.0.lib;vtkImagingCore-7.0.lib;vtkImagingFourier-7.0.lib;vtkImagingGeneral-7.0.lib;vtkImagingHybrid-7.0.lib;vtkImagingMath-7.0.lib;vtkImagingMorphological-7.0.lib;vtkImagingSources-7.0.lib;vtkImagingStatistics-7.0.lib;vtkImagingStencil-7.0.lib;vtkInfovisCore-7.0.lib;vtkInfovisLayout-7.0.lib;vtkInteractionImage-7.0.lib;vtkInteractionStyle-7.0.lib;vtkInteractionWidgets-7.0.lib;vtkIOAMR-7.0.lib;vtkIOCore-7.0.lib;vtkIOEnSight-7.0.lib;vtkIOExodus-7.0.lib;vtkIOExport-7.0.lib;vtkIOGeometry-7.0.lib;vtkIOImage-7.0.lib;vtkIOImport-7.0.lib;vtkIOInfovis-7.0.lib;vtkIOLegacy-7.0.lib;vtkIOLSDyna-7.0.lib;vtkIOMINC-7.0.lib;vtkIOMovie-7.0.lib;vtkIONetCDF-7.0.lib;vtkIOParallel-7.0.lib;vtkIOParallelXML-7.0.lib;vtkIOPLY-7.0.lib;vtkIOSQL-7.0.lib;vtkIOVideo-7.0.lib;vtkIOXML-7.0.lib;vtkIOXMLParser-7.0.lib;vtkjpeg-7.0.lib;vtkjsoncpp-7.0.lib;vtklibxml2-7.0.lib;vtkmetaio-7.0.lib;vtkNetCDF-7.0.lib;vtkNetCDF_cxx-7.0.lib;vtkoggtheora-7.0.lib;vtkParallelCore-7.0.lib;vtkpng-7.0.lib;vtkproj4-7.0.lib;vtkRenderingAnnotation-7.0.lib;vtkRenderingContext2D-7.0.lib;vtkRenderingContextOpenGL-7.0.lib;vtkRenderingCore-7.0.lib;vtkRenderingFreeType-7.0.lib;vtkRenderingImage-7.0.lib;vtkRenderingLabel-7.0.lib;vtkRenderingLOD-7.0.lib;vtkRenderingOpenGL-7.0.lib;vtkRenderingVolume-7.0.lib;vtkRenderingVolumeOpenGL-7.0.lib;vtksqlite-7.0.lib;vtksys-7.0.lib;vtktiff-7.0.lib;vtkverdict-7.0.lib;vtkViewsContext2D-7.0.lib;vtkViewsCore-7.0.lib;vtkViewsInfovis-7.0.lib;vtkzlib-7.0.lib;

完成后点击确定;

注意:上面为在release下运行的文件,如果想在debug下运行,则将其中的release改成debug,r改成gd即可(其实对应的所有文件都在PCL的各个lib中);

5.点击属性页的“确定”。

五、程序实际测试

将rabbit.pcd放到与main.cpp同一位置的文件夹下(工程文件夹)

程序代码:

 

#include<pcl/visualization/cloud_viewer.h>
#include<iostream>//标准C++库中的输入输出类相关头文件。
#include<pcl/io/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] = "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<vector>
#include<fstream>
using namespace std;

struct Node {
float x;
float y;
float z;
};若文件格式不是pcd,而是一般的点云格式,则可以用vector来转换
ifstream in0;
in0.open(strfilepath);
if (!in0.is_open())
{
cout << "error open!" << endl;
return -1;
}
vector<Node> points;
points.clear();
Node tmp;
while (in0 >> tmp.x >> tmp.y >> tmp.z)
points.push_back(tmp);
cout << points.size() << endl;
pcl::PointXYZ cltmp;
for (size_t i = 0; i < points.size(); ++i)
{
cltmp.x = points[i].x;
cltmp.y = points[i].y;
cltmp.z = points[i].z;
cloud->points.push_back(cltmp);
}
*/
实验结果:

*注意查看VS2015的报错,如果是pcl的IO问题,先检查自己的包含目录、库目录(lib是否有遗漏)和依赖项(release 还是debug)是否添加正确。如果报错是因为系统缺少openni2.dll,此时将PCL/3rdParty/OpenNI2/Tools/OpenNI2.dll放到.exe所在的目录程序就能正常运行。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值