PCL 1.60 +windows+vs2010 Installation and configuration

Source: Internet
Author: User

about PCL

Pcl(Point Cloud Library) is a large cross-platform open source that has been built on the basis of previous point cloud-related researchC + +programming Library, which realizes a large number of point cloud-related general-purpose algorithms and efficient data structures, involving point cloud acquisition, filtering, segmentation, registration, retrieval, feature extraction, identification, tracking, surface reconstruction, visualization and so on. supports a variety of operating system platforms that can beWindows,Linux,Android,Mac OS X, part of the embedded real-time system running. If you sayOpenCVis a2Dthe crystallization of information acquisition and processing, thenPCLjust in3Dinformation acquisition and processing have the same status,PCLis aBSDlicensed and can be used for commercial and academic applications free of charge.

just recently contacted PCL, found that the PCL is still relatively few people, there is not much information to learn, so I want to learn from the beginning, and record the process of learning. If you are interested in learning together students can add me QQ761551935, we exchange learning together.

Learning Resources:

PCL 1.8.0 Comparison of the complete installation package and installation steps: http://unanancyowen.com/en/pcl18/

PCL Related Data summary: https://github.com/neilgu00365/Survey-for-SfMMission

PCL China Point Cloud Library: http://www.pclcn.org/

Environment:windows+vs2010

If you don't have vs2010 , I'll share an installation package link:http://pan.baidu.com/s/1pL3I0dH Password:a53o

First, download

I am using PCL 1.6.0 all-in-one installer,windows MSVC (32bit), so the following is the main version. In fact, just download pcl-1.6.0-allinone-msvc2010-win32.exe,openni 1.5.4 (patched) and sensor 5.1.0 (patched) three files are all right, Pcl-1.6.0-allinone-msvc2010-win32.exe Internal already contains all the dependent libraries, during the installation process,Openni will not be installed, so to download separately, Other dependent libraries can be downloaded without downloading them.

    • official : http://pointclouds.org/downloads/windows.html

Second, installation

Individually installed

1, Pcl-1.6.0-allinone-msvc2010-win32.exe

2, Openni-win32-1.5.4-dev.msi

3, Sensor-win-opensource32-5.1.0.msi

Note: You are compiling the Win32 and Win64 versions to differentiate,PCL and dependent libraries are unified with the same version, otherwise run the time will be error.

Third, the configuration

1. Configuration include path

will be The include in the 3rdParty directory under the PCL installation path is added, plus openni The separately installed path is also added, and the include\pcl-1.6 under the PCL installation path is added.

2. Configure the Library path

will be The 3rdParty directory under the PCL installation path is added to the Lib in addition to the Openni separately installed path, as well as The lib in the PCL installation path is also added.

3. Configure the input library file

Add the following file names

Opengl32.libpcl_apps_debug.libpcl_common_debug.libpcl_features_debug.libpcl_filters_debug.libpcl_io_ Debug.libpcl_io_ply_debug.libpcl_kdtree_debug.libpcl_keypoints_debug.libpcl_octree_debug.libpcl_registration_ Debug.libpcl_sample_consensus_debug.libpcl_search_debug.libpcl_segmentation_debug.libpcl_surface_debug.libpcl_ tracking_debug.libpcl_visualization_debug.libflann_cpp_s-Gd.libboost_chrono-vc100-mt-gd-1_49.libboost_date_time-vc100-mt-gd-1_47.libboost_date_time-vc100-mt-gd-1_49.libboost_filesystem-vc100-mt-gd-1_47.libboost_filesystem-vc100-mt-gd-1_49.libboost_graph-vc100-mt-gd-1_49.libboost_graph_parallel-vc100-mt-gd-1_49.libboost_iostreams-vc100-mt-gd-1_47.libboost_iostreams-vc100-mt-gd-1_49.libboost_locale-vc100-mt-gd-1_49.libboost_math_c99-vc100-mt-gd-1_49.libboost_math_c99f-vc100-mt-gd-1_49.LIBBOOST_MATH_TR1-vc100-mt-gd-1_49.libboost_math_tr1f-vc100-mt-gd-1_49.libboost_mpi-vc100-mt-gd-1_49.libboost_prg_exec_monitor-vc100-mt-gd-1_49.libboost_program_options-vc100-mt-gd-1_49.libboost_random-vc100-mt-gd-1_49.libboost_regex-vc100-mt-gd-1_49.libboost_serialization-vc100-mt-gd-1_49.libboost_signals-vc100-mt-gd-1_49.libboost_system-vc100-mt-gd-1_47.libboost_system-vc100-mt-gd-1_49.libboost_thread-vc100-mt-gd-1_47.libboost_thread-vc100-mt-gd-1_49.libboost_timer-vc100-mt-gd-1_49.libboost_unit_test_framework-vc100-mt-gd-1_49.libboost_wave-vc100-mt-gd-1_49.libboost_wserialization-vc100-mt-gd-1_49.liblibboost_chrono-vc100-mt-gd-1_49.liblibboost_date_time-vc100-mt-gd-1_47.liblibboost_date_time-vc100-mt-gd-1_49.liblibboost_filesystem-vc100-mt-gd-1_47.liblibboost_filesystem-vc100-mt-gd-1_49.liblibboost_graph_parallel-vc100-mt-gd-1_49.liblibboost_iostreams-vc100-mt-gd-1_47.liblibboost_iostreams-vc100-mt-gd-1_49.liblibboost_locale-vc100-mt-gd-1_49.liblibboost_math_c99-vc100-mt-gd-1_49.liblibboost_math_c99f-vc100-mt-gd-1_49.LIBLIBBOOST_MATH_TR1-vc100-mt-gd-1_49.liblibboost_math_tr1f-vc100-mt-gd-1_49.liblibboost_mpi-vc100-mt-gd-1_49.liblibboost_prg_exec_monitor-vc100-mt-gd-1_49.liblibboost_program_options-vc100-mt-gd-1_49.liblibboost_random-vc100-mt-gd-1_49.liblibboost_regex-vc100-mt-gd-1_49.liblibboost_serialization-vc100-mt-gd-1_49.liblibboost_signals-vc100-mt-gd-1_49.liblibboost_system-vc100-mt-gd-1_47.liblibboost_system-vc100-mt-gd-1_49.liblibboost_test_exec_monitor-vc100-mt-gd-1_49.liblibboost_thread-vc100-mt-gd-1_47.liblibboost_thread-vc100-mt-gd-1_49.liblibboost_timer-vc100-mt-gd-1_49.liblibboost_unit_test_framework-vc100-mt-gd-1_49.liblibboost_wave-vc100-mt-gd-1_49.liblibboost_wserialization-vc100-mt-gd-1_49.libvtkalglib-Gd.libvtkcharts-Gd.libvtkcommon-Gd.libvtkdicomparser-GD.LIBVTKEXOIIC-Gd.libvtkexpat-gd.libvtkfiltering-Gd.libvtkfreetype-GD.LIBVTKFTGL-gd.libvtkgenericfiltering-Gd.libvtkgeovis-Gd.libvtkgraphics-Gd.libvtkhdf5-Gd.libvtkhybrid-gd.libvtkimaging-Gd.libvtkinfovis-Gd.libvtkio-Gd.libvtkjpeg-GD.LIBVTKLIBXML2-Gd.libvtkmetaio-GD.LIBVTKNETCDF-Gd.libvtknetcdf_cxx-Gd.libvtkpng-Gd.libvtkproj4-gd.libvtkrendering-Gd.libvtksqlite-Gd.libvtksys-Gd.libvtktiff-gd.libvtkverdict-gd.libvtkviews-gd.libvtkvolumerendering-gd.libvtkwidgets-Gd.libvtkzlib-gd.lib

There are a lot of files here, there can be a quicker way: here take VTK as an example,

Open Cmd-> Enter the 3rdparty\vtk\lib\vtk-5.8 directory into the PCL installation directory input command:dir/b *gd.lib, List.txt

the command means to find the file at the end of the gd.lib and save it to the list.txt document. The current directory will then generate list.txt

Four, Demo

Routines:

#include <pcl/visualization/cloud_viewer.h>#include<iostream>#include<pcl/io/io.h>#include<pcl/io/pcd_io.h>intUser_data;voidVieweroneoff (pcl::visualization::P clvisualizer&Viewer) {Viewer.setbackgroundcolor (0,0,0);    PCL::P ointxyz o; O.x=1.0; O.y=0; O.z=0; Viewer.addsphere (O,0.25,"Sphere",0); Std::cout<<"I only run once"<<Std::endl;}voidViewerpsycho (pcl::visualization::P clvisualizer&Viewer) {    Staticunsigned count =0;    Std::stringstream SS; SS<<"Once per viewer loop:"<< count++; Viewer.removeshape ("text",0); Viewer.addtext (Ss.str (), $, -,"text",0); //fixme:possible race condition here:user_data++;}intMain () {PCL::P ointcloud&LT;PCL::P ointxyzrgba>::P TR Cloud (NewPCL::P OINTCLOUD&LT;PCL::P ointxyzrgba>); Pcl::io::loadpcdfile ("MY_POINT_CLOUD.PCD", *cloud); Pcl::visualization::cloudviewer Viewer ("Cloud Viewer"); //blocks until the cloud is actually renderedViewer.showcloud (Cloud); //Use the following functions-get access to the underlying more advanced/powerful//Pclvisualizer//This would only get called onceviewer.runonvisualizationthreadonce (Vieweroneoff); //This would get called once per visualization iterationViewer.runonvisualizationthread (Viewerpsycho);  while(!viewer.wasstopped ()) {        //You can also does cool processing here//Fixme:note that's running in a separate the thread from Viewerpsycho//And you should guard against race conditions yourself ...user_data++; }    return 0;}

The above is the Point cloud that gets to my desktop with RealSense SR300.

MY_POINT_CLOUD.PCD file Link:http://pan.baidu.com/s/1gfD2lF1 Password:cexi

V. Summary and share

1, PCD reading a little slow, it is said that the PCD data in order to point the way to save the cloud will be better, but I did not try to see how much faster, this remains to be studied.

2, SR300 Direct access to the depth image and RGB image coordinates are biased, this consideration how to do alignment.

3, If the project configuration on the SR300 SDK and OpenCV, we do not need to save the PCD in another project first The file is read again, the middle can save a lot of steps.

4, PCL learning materials are still very few, at present heard better also only "point Cloud library PCL Learning Tutorial", I also bought a copy, slowly learn it.

PCL 1.60 +windows+vs2010 Installation and configuration

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.