1. 程式人生 > >vs2015配置pcl1.8.1

vs2015配置pcl1.8.1

之前前配置好了vs2015和qt5.7.1由於專案需求,需要用到pcl,進行配置。。。

首先下載pcl,我下的是vs2015 win64位的,網址在這裡https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.8.1 哎,但我知道好多小夥伴下不了的,所以我放到我的百度雲裡面了,你們可以下。連結在這裡https://pan.baidu.com/s/1weIPhOG1Lh4kLBTyei_Tng    提取碼是 5uet   這裡僅作分享,因為我也是被網坑的很慘,不希望大家都這樣。。。

恩。。。下完後開啟啟動程式,選擇

選擇安裝目錄,聽說不要有空格。。。不要像我下面一樣。。。

彈出安裝OpenNI,將OpenNI安裝在PCL安裝目錄下3rdParty\OpenNI2下

將之前的pdb壓縮包解壓,放到pcl安裝目錄的bin檔案裡面,然後點選我的電腦-屬性-高階選項-環境變數將系統變數中的PATH中新增以下路徑:E:\PCL\PCL\PCL1.8.1\bin;E:\PCL\PCL\PCL1.8.1\3rdParty\VTK\bin;E:\PCL\PCL\PCL1.8.1\3rdParty\FLANN\bin;E:\PCL\PCL\PCL1.8.1\3rdParty\Qhull\bin;E:\PCL\PCL\PCL1.8.1\3rdParty\OpenNI2\Tools

然後進入vs,隨便建立一個空專案,然後專案,如圖,我就是Project1,點選屬性,配置包含目錄,如圖所示需要這些檔案

然後配置庫目錄,需要這些

然後新增依賴項

我只添加了debug版本,需要如下這些

pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_debug.lib

pcl_io_ply_debug.lib

pcl_kdtree_debug.lib

pcl_keypoints_debug.lib

pcl_ml_debug.lib

pcl_octree_debug.lib

pcl_outofcore_debug.lib

pcl_people_debug.lib

pcl_recognition_debug.lib

pcl_registration_debug.lib

pcl_sample_consensus_debug.lib

pcl_search_debug.lib

pcl_segmentation_debug.lib

pcl_stereo_debug.lib
pcl_surface_debug.lib

pcl_tracking_debug.lib

pcl_visualization_debug.lib

libboost_atomic-vc140-mt-gd-1_64.lib

libboost_bzip2-vc140-mt-gd-1_64.lib

libboost_chrono-vc140-mt-gd-1_64.lib

libboost_container-vc140-mt-gd-1_64.lib

libboost_context-vc140-mt-gd-1_64.lib

libboost_coroutine-vc140-mt-gd-1_64.lib

libboost_date_time-vc140-mt-gd-1_64.lib

libboost_exception-vc140-mt-gd-1_64.lib

libboost_fiber-vc140-mt-gd-1_64.lib

libboost_filesystem-vc140-mt-gd-1_64.lib

libboost_graph_parallel-vc140-mt-gd-1_64.lib

libboost_graph-vc140-mt-gd-1_64.lib
libboost_iostreams-vc140-mt-gd-1_64.lib

libboost_locale-vc140-mt-gd-1_64.lib

libboost_log-vc140-mt-gd-1_64.lib

libboost_log_setup-vc140-mt-gd-1_64.lib

libboost_math_c99-vc140-mt-gd-1_64.lib

libboost_math_c99f-vc140-mt-gd-1_64.lib

libboost_math_c99l-vc140-mt-gd-1_64.lib

libboost_math_tr1-vc140-mt-gd-1_64.lib

libboost_math_tr1f-vc140-mt-gd-1_64.lib

libboost_math_tr1l-vc140-mt-gd-1_64.lib

libboost_mpi-vc140-mt-gd-1_64.lib

libboost_numpy3-vc140-mt-gd-1_64.lib

libboost_numpy-vc140-mt-gd-1_64.lib

libboost_prg_exec_monitor-vc140-mt-gd-1_64.lib

libboost_program_options-vc140-mt-gd-1_64.lib

libboost_python3-vc140-mt-gd-1_64.lib

libboost_python-vc140-mt-gd-1_64.lib

libboost_random-vc140-mt-gd-1_64.lib

libboost_regex-vc140-mt-gd-1_64.lib

libboost_serialization-vc140-mt-gd-1_64.lib

libboost_signals-vc140-mt-gd-1_64.lib

libboost_system-vc140-mt-gd-1_64.lib

libboost_test_exec_monitor-vc140-mt-gd-1_64.lib

libboost_thread-vc140-mt-gd-1_64.lib

libboost_timer-vc140-mt-gd-1_64.lib

libboost_type_erasure-vc140-mt-gd-1_64.lib

libboost_unit_test_framework-vc140-mt-gd-1_64.lib

libboost_wave-vc140-mt-gd-1_64.lib

libboost_wserialization-vc140-mt-gd-1_64.lib

libboost_zlib-vc140-mt-gd-1_64.lib

vtkzlib-8.0-gd.lib

vtkViewsContext2D-8.0-gd.lib

vtkhdf5_hl-8.0-gd.lib

vtkFiltersProgrammable-8.0-gd.lib

vtkIOMovie-8.0-gd.lib

vtkexpat-8.0-gd.lib

vtkRenderingLOD-8.0-gd.lib

vtkIOPLY-8.0-gd.lib

vtkpng-8.0-gd.lib

vtkIOVideo-8.0-gd.lib

vtkRenderingImage-8.0-gd.lib

vtkFiltersVerdict-8.0-gd.lib

vtkjpeg-8.0-gd.lib

vtkInteractionImage-8.0-gd.lib

vtkverdict-8.0-gd.lib

vtkoggtheora-8.0-gd.lib

vtkImagingStatistics-8.0-gd.lib

vtkCommonSystem-8.0-gd.lib

vtkFiltersParallelImaging-8.0-gd.lib

vtkFiltersTexture-8.0-gd.lib

vtkCommonMisc-8.0-gd.lib

vtkCommonMath-8.0-gd.lib

vtkFiltersSelection-8.0-gd.lib

vtkImagingFourier-8.0-gd.lib

vtkIOXMLParser-8.0-gd.lib

vtkproj4-8.0-gd.lib

vtkalglib-8.0-gd.lib

vtktiff-8.0-gd.lib

vtksqlite-8.0-gd.lib

vtkImagingSources-8.0-gd.lib

vtkCommonTransforms-8.0-gd.lib

vtkImagingMath-8.0-gd.lib

vtkFiltersGeneric-8.0-gd.lib

vtkexoIIc-8.0-gd.lib

vtkfreetype-8.0-gd.lib

vtkImagingColor-8.0-gd.lib

vtknetcdf_c++-gd.lib

vtkNetCDF-8.0-gd.lib

vtkFiltersImaging-8.0-gd.lib

vtkFiltersHyperTree-8.0-gd.lib

vtkImagingMorphological-8.0-gd.lib

vtkImagingStencil-8.0-gd.lib

vtkRenderingFreeType-8.0-gd.lib

vtkCommonColor-8.0-gd.lib

vtkjsoncpp-8.0-gd.lib

vtkRenderingContext2D-8.0-gd.lib

vtkFiltersAMR-8.0-gd.lib

vtkRenderingContextOpenGL-8.0-gd.lib

vtkIOParallelXML-8.0-gd.lib

vtkViewsCore-8.0-gd.lib

vtkImagingHybrid-8.0-gd.lib

vtkIOExport-8.0-gd.lib

vtkRenderingVolumeOpenGL-8.0-gd.lib

vtkIOImport-8.0-gd.lib

vtkDomainsChemistry-8.0-gd.lib

vtkInteractionStyle-8.0-gd.lib

vtkCommonComputationalGeometry-8.0-gd.lib

vtkDICOMParser-8.0-gd.lib

vtklibxml2-8.0-gd.lib

vtkIOMINC-8.0-gd.lib

vtkIOSQL-8.0-gd.lib

vtkFiltersModeling-8.0-gd.lib

vtkParallelCore-8.0-gd.lib

vtkIOAMR-8.0-gd.lib

vtkGeovisCore-8.0-gd.lib

vtksys-8.0-gd.lib

vtkIOEnSight-8.0-gd.lib

vtkImagingGeneral-8.0-gd.lib

vtkFiltersFlowPaths-8.0-gd.lib

vtkIOLSDyna-8.0-gd.lib

vtkFiltersSMP-8.0-gd.lib

vtkIOParallel-8.0-gd.lib

vtkFiltersGeometry-8.0-gd.lib

vtkInfovisLayout-8.0-gd.lib

vtkIOCore-8.0-gd.lib

vtkFiltersSources-8.0-gd.lib

vtkIOLegacy-8.0-gd.lib

vtkFiltersHybrid-8.0-gd.lib

vtkIONetCDF-8.0-gd.lib

vtkFiltersExtraction-8.0-gd.lib

vtkFiltersParallel-8.0-gd.lib

vtkRenderingLabel-8.0-gd.lib

vtkIOInfovis-8.0-gd.lib

vtkRenderingAnnotation-8.0-gd.lib

vtkImagingCore-8.0-gd.lib

vtkCommonExecutionModel-8.0-gd.lib

vtkhdf5-8.0-gd.lib

vtkViewsInfovis-8.0-gd.lib

vtkIOGeometry-8.0-gd.lib

vtkmetaio-8.0-gd.lib

vtkIOImage-8.0-gd.lib

vtkIOXML-8.0-gd.lib

vtkIOExodus-8.0-gd.lib

vtkRenderingVolume-8.0-gd.lib

vtkChartsCore-8.0-gd.lib

vtkFiltersStatistics-8.0-gd.lib

vtkInfovisCore-8.0-gd.lib

vtkRenderingCore-8.0-gd.lib

vtkInteractionWidgets-8.0-gd.lib

vtkRenderingOpenGL-8.0-gd.lib

vtkFiltersGeneral-8.0-gd.lib

vtkFiltersCore-8.0-gd.lib

vtkCommonDataModel-8.0-gd.lib

vtkCommonCore-8.0-gd.lib

flann_cpp_s-gd.lib

qhullstatic_d.lib

OpenNI2.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檢查選項點否

好了 整個pcl和vs的配置安裝完成了,接下來,會進行pcl+vs+qt的聯合編譯配置,敬請期待。。。