最近在学习pcl,C++早就忘记了,所以踩了好些坑

不过终于通过了,特此记录下来

环境:win7+pcl1.81+vs2015

1.安装pcl1.81

下载PCL-1.8.1-AllInOne-msvc2015-win64.exe

链接:https://pan.baidu.com/s/1wikg-6uNeBdJf2Ra2EA2fA
提取码:j88f

安装一直下一步,在弹出OpenNI的安装程序

  将OpenNI的安装路径设置为“PCL_ROOT”下3rdParty\OpenNI2文件夹,如C:\Program Files\PCL 1.8.1\3rdParty\OpenNI2

  说明:

    安装结束后若提示“路径过长无法添加环境变量”,需要手动加上环境变量

  1. set PCL_ROOT=C:\Program Files\PCL 1.8.
  2. set OPENNI2_INCLUDE64=C:\Program Files\PCL 1.8.\3rdParty\OpenNI2\Include
  3. set OPENNI2_LIB64=C:\Program Files\PCL 1.8.\3rdParty\OpenNI2\Lib
  4. set OPENNI2_REDIST64=C:\Program Files\PCL 1.8.\3rdParty\OpenNI2\Redist
  5. set path=%path%;%PCL_ROOT%\bin\;C:\Program Files\PCL 1.8.\3rdParty\OpenNI2\Tools;C:\Program Files\PCL 1.8.\3rdParty\VTK\bin;

2.应用

  (1)创建工程pcl

  文件—》新建—》项目

  (2)配置,调试—》pcl属性

    A.配置属性—》调试—》环境

      path = C:\Program Files\PCL 1.8.1\bin

 

    B.配置属性—》C/C++—》预处理器

    追加

  1. _SCL_SECURE_NO_WARNINGS
  2. _CRT_SECURE_NO_WARNINGS
  3. PCL_NO_PRECOMPILE

    C.配置属性—》VC++目录—》包含目录

      C:\Program Files\PCL 1.8.1\include\pcl-1.8

      C:\Program Files\PCL 1.8.1\3rdParty\Boost\include\boost-1_64

      C:\Program Files\PCL 1.8.1\3rdParty\Eigen\eigen3

      C:\Program Files\PCL 1.8.1\3rdParty\FLANN\include

      C:\Program Files\PCL 1.8.1\3rdParty\Qhull\include

      C:\Program Files\PCL 1.8.1\3rdParty\VTK\include\vtk-8.0

      C:\Program Files\PCL 1.8.1\3rdParty\OpenNI2\Include

    D.配置属性—》VC++目录—》库目录  

      C:\Program Files\PCL 1.8.1\lib

      C:\Program Files\PCL 1.8.1\3rdParty\Boost\lib

      C:\Program Files\PCL 1.8.1\3rdParty\FLANN\lib

      C:\Program Files\PCL 1.8.1\3rdParty\Qhull\lib

      C:\Program Files\PCL 1.8.1\3rdParty\VTK\lib

      C:\Program Files\PCL 1.8.1\3rdParty\OpenNI2\Lib

 

    E.配置属性—》链接器—》附加依赖项

    在Debug模式

  1. pcl_common_debug.lib
  2. pcl_features_debug.lib
  3. pcl_filters_debug.lib
  4. pcl_io_debug.lib
  5. pcl_io_ply_debug.lib
  6. pcl_kdtree_debug.lib
  7. pcl_keypoints_debug.lib
  8. pcl_ml_debug.lib
  9. pcl_octree_debug.lib
  10. pcl_outofcore_debug.lib
  11. pcl_people_debug.lib
  12. pcl_recognition_debug.lib
  13. pcl_registration_debug.lib
  14. pcl_sample_consensus_debug.lib
  15. pcl_search_debug.lib
  16. pcl_segmentation_debug.lib
  17. pcl_stereo_debug.lib
  18. pcl_surface_debug.lib
  19. pcl_tracking_debug.lib
  20. pcl_visualization_debug.lib
  21. libboost_atomic-vc140-mt-gd-1_64.lib
  22. libboost_chrono-vc140-mt-gd-1_64.lib
  23. libboost_container-vc140-mt-gd-1_64.lib
  24. libboost_context-vc140-mt-gd-1_64.lib
  25. libboost_coroutine-vc140-mt-gd-1_64.lib
  26. libboost_date_time-vc140-mt-gd-1_64.lib
  27. libboost_exception-vc140-mt-gd-1_64.lib
  28. libboost_filesystem-vc140-mt-gd-1_64.lib
  29. libboost_graph-vc140-mt-gd-1_64.lib
  30. libboost_iostreams-vc140-mt-gd-1_64.lib
  31. libboost_locale-vc140-mt-gd-1_64.lib
  32. libboost_log-vc140-mt-gd-1_64.lib
  33. libboost_log_setup-vc140-mt-gd-1_64.lib
  34. libboost_math_c99-vc140-mt-gd-1_64.lib
  35. libboost_math_c99f-vc140-mt-gd-1_64.lib
  36. libboost_math_c99l-vc140-mt-gd-1_64.lib
  37. libboost_math_tr1-vc140-mt-gd-1_64.lib
  38. libboost_math_tr1f-vc140-mt-gd-1_64.lib
  39. libboost_math_tr1l-vc140-mt-gd-1_64.lib
  40. libboost_mpi-vc140-mt-gd-1_64.lib
  41. libboost_prg_exec_monitor-vc140-mt-gd-1_64.lib
  42. libboost_program_options-vc140-mt-gd-1_64.lib
  43. libboost_random-vc140-mt-gd-1_64.lib
  44. libboost_regex-vc140-mt-gd-1_64.lib
  45. libboost_serialization-vc140-mt-gd-1_64.lib
  46. libboost_signals-vc140-mt-gd-1_64.lib
  47. libboost_system-vc140-mt-gd-1_64.lib
  48. libboost_test_exec_monitor-vc140-mt-gd-1_64.lib
  49. libboost_thread-vc140-mt-gd-1_64.lib
  50. libboost_timer-vc140-mt-gd-1_64.lib
  51. libboost_unit_test_framework-vc140-mt-gd-1_64.lib
  52. libboost_wave-vc140-mt-gd-1_64.lib
  53. libboost_wserialization-vc140-mt-gd-1_64.lib
  54. flann-gd.lib
  55. flann_s-gd.lib
  56. flann_cpp-gd.lib
  57. flann_cpp_s-gd.lib
  58. qhull_d.lib
  59. qhull_p_d.lib
  60. qhull_r_d.lib
  61. qhullcpp_d.lib
  62. qhullstatic_d.lib
  63. qhullstatic_r_d.lib
  64. vtkalglib-8.0-gd.lib
  65. vtkChartsCore-8.0-gd.lib
  66. vtkCommonColor-8.0-gd.lib
  67. vtkCommonComputationalGeometry-8.0-gd.lib
  68. vtkCommonCore-8.0-gd.lib
  69. vtkCommonDataModel-8.0-gd.lib
  70. vtkCommonExecutionModel-8.0-gd.lib
  71. vtkCommonMath-8.0-gd.lib
  72. vtkCommonMisc-8.0-gd.lib
  73. vtkCommonSystem-8.0-gd.lib
  74. vtkCommonTransforms-8.0-gd.lib
  75. vtkDICOMParser-8.0-gd.lib
  76. vtkDomainsChemistry-8.0-gd.lib
  77. vtkexoIIc-8.0-gd.lib
  78. vtkexpat-8.0-gd.lib
  79. vtkFiltersAMR-8.0-gd.lib
  80. vtkFiltersCore-8.0-gd.lib
  81. vtkFiltersExtraction-8.0-gd.lib
  82. vtkFiltersFlowPaths-8.0-gd.lib
  83. vtkFiltersGeneral-8.0-gd.lib
  84. vtkFiltersGeneric-8.0-gd.lib
  85. vtkFiltersGeometry-8.0-gd.lib
  86. vtkFiltersHybrid-8.0-gd.lib
  87. vtkFiltersHyperTree-8.0-gd.lib
  88. vtkFiltersImaging-8.0-gd.lib
  89. vtkFiltersModeling-8.0-gd.lib
  90. vtkFiltersParallel-8.0-gd.lib
  91. vtkFiltersParallelImaging-8.0-gd.lib
  92. vtkFiltersPoints-8.0-gd.lib
  93. vtkFiltersProgrammable-8.0-gd.lib
  94. vtkFiltersSelection-8.0-gd.lib
  95. vtkFiltersSMP-8.0-gd.lib
  96. vtkFiltersSources-8.0-gd.lib
  97. vtkFiltersStatistics-8.0-gd.lib
  98. vtkFiltersTexture-8.0-gd.lib
  99. vtkFiltersTopology-8.0-gd.lib
  100. vtkFiltersVerdict-8.0-gd.lib
  101. vtkfreetype-8.0-gd.lib
  102. vtkGeovisCore-8.0-gd.lib
  103. vtkgl2ps-8.0-gd.lib
  104. vtkhdf5-8.0-gd.lib
  105. vtkhdf5_hl-8.0-gd.lib
  106. vtkImagingColor-8.0-gd.lib
  107. vtkImagingCore-8.0-gd.lib
  108. vtkImagingFourier-8.0-gd.lib
  109. vtkImagingGeneral-8.0-gd.lib
  110. vtkImagingHybrid-8.0-gd.lib
  111. vtkImagingMath-8.0-gd.lib
  112. vtkImagingMorphological-8.0-gd.lib
  113. vtkImagingSources-8.0-gd.lib
  114. vtkImagingStatistics-8.0-gd.lib
  115. vtkImagingStencil-8.0-gd.lib
  116. vtkInfovisCore-8.0-gd.lib
  117. vtkInfovisLayout-8.0-gd.lib
  118. vtkInteractionImage-8.0-gd.lib
  119. vtkInteractionStyle-8.0-gd.lib
  120. vtkInteractionWidgets-8.0-gd.lib
  121. vtkIOAMR-8.0-gd.lib
  122. vtkIOCore-8.0-gd.lib
  123. vtkIOEnSight-8.0-gd.lib
  124. vtkIOExodus-8.0-gd.lib
  125. vtkIOExport-8.0-gd.lib
  126. vtkIOExportOpenGL-8.0-gd.lib
  127. vtkIOGeometry-8.0-gd.lib
  128. vtkIOImage-8.0-gd.lib
  129. vtkIOImport-8.0-gd.lib
  130. vtkIOInfovis-8.0-gd.lib
  131. vtkIOLegacy-8.0-gd.lib
  132. vtkIOLSDyna-8.0-gd.lib
  133. vtkIOMINC-8.0-gd.lib
  134. vtkIOMovie-8.0-gd.lib
  135. vtkIONetCDF-8.0-gd.lib
  136. vtkIOParallel-8.0-gd.lib
  137. vtkIOParallelXML-8.0-gd.lib
  138. vtkIOPLY-8.0-gd.lib
  139. vtkIOSQL-8.0-gd.lib
  140. vtkIOTecplotTable-8.0-gd.lib
  141. vtkIOVideo-8.0-gd.lib
  142. vtkIOXML-8.0-gd.lib
  143. vtkIOXMLParser-8.0-gd.lib
  144. vtkjpeg-8.0-gd.lib
  145. vtkjsoncpp-8.0-gd.lib
  146. vtklibharu-8.0-gd.lib
  147. vtklibxml2-8.0-gd.lib
  148. vtklz4-8.0-gd.lib
  149. vtkmetaio-8.0-gd.lib
  150. vtknetcdf_c++-gd.lib
  151. vtkNetCDF-8.0-gd.lib
  152. vtkoggtheora-8.0-gd.lib
  153. vtkParallelCore-8.0-gd.lib
  154. vtkpng-8.0-gd.lib
  155. vtkproj4-8.0-gd.lib
  156. vtkRenderingAnnotation-8.0-gd.lib
  157. vtkRenderingContext2D-8.0-gd.lib
  158. vtkRenderingContextOpenGL-8.0-gd.lib
  159. vtkRenderingCore-8.0-gd.lib
  160. vtkRenderingFreeType-8.0-gd.lib
  161. vtkRenderingGL2PS-8.0-gd.lib
  162. vtkRenderingImage-8.0-gd.lib
  163. vtkRenderingLabel-8.0-gd.lib
  164. vtkRenderingLIC-8.0-gd.lib
  165. vtkRenderingLOD-8.0-gd.lib
  166. vtkRenderingOpenGL-8.0-gd.lib
  167. vtkRenderingVolume-8.0-gd.lib
  168. vtkRenderingVolumeOpenGL-8.0-gd.lib
  169. vtksqlite-8.0-gd.lib
  170. vtksys-8.0-gd.lib
  171. vtktiff-8.0-gd.lib
  172. vtkverdict-8.0-gd.lib
  173. vtkViewsContext2D-8.0-gd.lib
  174. vtkViewsCore-8.0-gd.lib
  175. vtkViewsInfovis-8.0-gd.lib
  176. vtkzlib-8.0-gd.lib
  177. OpenNI2.lib

View Content

    在Release模式

  1. pcl_common_release.lib
  2. pcl_features_release.lib
  3. pcl_filters_release.lib
  4.  
  5. pcl_io_ply_release.lib
  6. pcl_io_release.lib
  7. pcl_kdtree_release.lib
  8. pcl_keypoints_release.lib
  9. pcl_ml_release.lib
  10. pcl_octree_release.lib
  11. pcl_outofcore_release.lib
  12. pcl_people_release.lib
  13. pcl_recognition_release.lib
  14. pcl_registration_release.lib
  15. pcl_sample_consensus_release.lib
  16. pcl_search_release.lib
  17. pcl_segmentation_release.lib
  18. pcl_stereo_release.lib
  19. pcl_surface_release.lib
  20. pcl_tracking_release.lib
  21. pcl_visualization_release.lib
  22. libboost_atomic-vc140-mt-1_64.lib
  23. libboost_chrono-vc140-mt-1_64.lib
  24. libboost_container-vc140-mt-1_64.lib
  25. libboost_context-vc140-mt-1_64.lib
  26. libboost_coroutine-vc140-mt-1_64.lib
  27. libboost_date_time-vc140-mt-1_64.lib
  28. libboost_exception-vc140-mt-1_64.lib
  29. libboost_filesystem-vc140-mt-1_64.lib
  30. libboost_graph-vc140-mt-1_64.lib
  31. libboost_iostreams-vc140-mt-1_64.lib
  32. libboost_locale-vc140-mt-1_64.lib
  33. libboost_log-vc140-mt-1_64.lib
  34. libboost_log_setup-vc140-mt-1_64.lib
  35. libboost_math_c99-vc140-mt-1_64.lib
  36. libboost_math_c99f-vc140-mt-1_64.lib
  37. libboost_math_c99l-vc140-mt-1_64.lib
  38. libboost_math_tr1-vc140-mt-1_64.lib
  39. libboost_math_tr1f-vc140-mt-1_64.lib
  40. libboost_math_tr1l-vc140-mt-1_64.lib
  41. libboost_mpi-vc140-mt-1_64.lib
  42. libboost_prg_exec_monitor-vc140-mt-1_64.lib
  43. libboost_program_options-vc140-mt-1_64.lib
  44. libboost_random-vc140-mt-1_64.lib
  45. libboost_regex-vc140-mt-1_64.lib
  46. libboost_serialization-vc140-mt-1_64.lib
  47. libboost_signals-vc140-mt-1_64.lib
  48. libboost_system-vc140-mt-1_64.lib
  49. libboost_test_exec_monitor-vc140-mt-1_64.lib
  50. libboost_thread-vc140-mt-1_64.lib
  51. libboost_timer-vc140-mt-1_64.lib
  52. libboost_unit_test_framework-vc140-mt-1_64.lib
  53. libboost_wave-vc140-mt-1_64.lib
  54. libboost_wserialization-vc140-mt-1_64.lib
  55. flann.lib
  56. flann_cpp.lib
  57. flann_cpp_s.lib
  58. flann_s.lib
  59. qhull.lib
  60. qhull_p.lib
  61. qhull_r.lib
  62. qhullcpp.lib
  63. qhullstatic.lib
  64. qhullstatic_r.lib
  65. vtkalglib-8.0.lib
  66. vtkChartsCore-8.0.lib
  67. vtkCommonColor-8.0.lib
  68. vtkCommonComputationalGeometry-8.0.lib
  69. vtkCommonCore-8.0.lib
  70. vtkCommonDataModel-8.0.lib
  71. vtkCommonExecutionModel-8.0.lib
  72. vtkCommonMath-8.0.lib
  73. vtkCommonMisc-8.0.lib
  74. vtkCommonSystem-8.0.lib
  75. vtkCommonTransforms-8.0.lib
  76. vtkDICOMParser-8.0.lib
  77. vtkDomainsChemistry-8.0.lib
  78. vtkexoIIc-8.0.lib
  79. vtkexpat-8.0.lib
  80. vtkFiltersAMR-8.0.lib
  81. vtkFiltersCore-8.0.lib
  82. vtkFiltersExtraction-8.0.lib
  83. vtkFiltersFlowPaths-8.0.lib
  84. vtkFiltersGeneral-8.0.lib
  85. vtkFiltersGeneric-8.0.lib
  86. vtkFiltersGeometry-8.0.lib
  87. vtkFiltersHybrid-8.0.lib
  88. vtkFiltersHyperTree-8.0.lib
  89. vtkFiltersImaging-8.0.lib
  90. vtkFiltersModeling-8.0.lib
  91. vtkFiltersParallel-8.0.lib
  92. vtkFiltersParallelImaging-8.0.lib
  93. vtkFiltersPoints-8.0.lib
  94. vtkFiltersProgrammable-8.0.lib
  95. vtkFiltersSelection-8.0.lib
  96. vtkFiltersSMP-8.0.lib
  97. vtkFiltersSources-8.0.lib
  98. vtkFiltersStatistics-8.0.lib
  99. vtkFiltersTexture-8.0.lib
  100. vtkFiltersTopology-8.0.lib
  101. vtkFiltersVerdict-8.0.lib
  102. vtkfreetype-8.0.lib
  103. vtkGeovisCore-8.0.lib
  104. vtkgl2ps-8.0.lib
  105. vtkhdf5-8.0.lib
  106. vtkhdf5_hl-8.0.lib
  107. vtkImagingColor-8.0.lib
  108. vtkImagingCore-8.0.lib
  109. vtkImagingFourier-8.0.lib
  110. vtkImagingGeneral-8.0.lib
  111. vtkImagingHybrid-8.0.lib
  112. vtkImagingMath-8.0.lib
  113. vtkImagingMorphological-8.0.lib
  114. vtkImagingSources-8.0.lib
  115. vtkImagingStatistics-8.0.lib
  116. vtkImagingStencil-8.0.lib
  117. vtkInfovisCore-8.0.lib
  118. vtkInfovisLayout-8.0.lib
  119. vtkInteractionImage-8.0.lib
  120. vtkInteractionStyle-8.0.lib
  121. vtkInteractionWidgets-8.0.lib
  122. vtkIOAMR-8.0.lib
  123. vtkIOCore-8.0.lib
  124. vtkIOEnSight-8.0.lib
  125. vtkIOExodus-8.0.lib
  126. vtkIOExport-8.0.lib
  127. vtkIOExportOpenGL-8.0.lib
  128. vtkIOGeometry-8.0.lib
  129. vtkIOImage-8.0.lib
  130. vtkIOImport-8.0.lib
  131. vtkIOInfovis-8.0.lib
  132. vtkIOLegacy-8.0.lib
  133. vtkIOLSDyna-8.0.lib
  134. vtkIOMINC-8.0.lib
  135. vtkIOMovie-8.0.lib
  136. vtkIONetCDF-8.0.lib
  137. vtkIOParallel-8.0.lib
  138. vtkIOParallelXML-8.0.lib
  139. vtkIOPLY-8.0.lib
  140. vtkIOSQL-8.0.lib
  141. vtkIOTecplotTable-8.0.lib
  142. vtkIOVideo-8.0.lib
  143. vtkIOXML-8.0.lib
  144. vtkIOXMLParser-8.0.lib
  145. vtkjpeg-8.0.lib
  146. vtkjsoncpp-8.0.lib
  147. vtklibharu-8.0.lib
  148. vtklibxml2-8.0.lib
  149. vtklz4-8.0.lib
  150. vtkmetaio-8.0.lib
  151. vtknetcdf_c++.lib
  152. vtkNetCDF-8.0.lib
  153. vtkoggtheora-8.0.lib
  154. vtkParallelCore-8.0.lib
  155. vtkpng-8.0.lib
  156. vtkproj4-8.0.lib
  157. vtkRenderingAnnotation-8.0.lib
  158. vtkRenderingContext2D-8.0.lib
  159. vtkRenderingContextOpenGL-8.0.lib
  160. vtkRenderingCore-8.0.lib
  161. vtkRenderingFreeType-8.0.lib
  162. vtkRenderingGL2PS-8.0.lib
  163. vtkRenderingImage-8.0.lib
  164. vtkRenderingLabel-8.0.lib
  165. vtkRenderingLIC-8.0.lib
  166. vtkRenderingLOD-8.0.lib
  167. vtkRenderingOpenGL-8.0.lib
  168. vtkRenderingVolume-8.0.lib
  169. vtkRenderingVolumeOpenGL-8.0.lib
  170. vtksqlite-8.0.lib
  171. vtksys-8.0.lib
  172. vtktiff-8.0.lib
  173. vtkverdict-8.0.lib
  174. vtkViewsContext2D-8.0.lib
  175. vtkViewsCore-8.0.lib
  176. vtkViewsInfovis-8.0.lib
  177. vtkzlib-8.0.lib
  178. OpenNI2.lib

View Content

  说明:

    debug的比release的文件名多 -gd,_d是不同库中debug的命名规则

    其中文件名来自 PCL 1.8.1\lib,PCL 1.8.1\3rdParty\Boost\lib,PCL 1.8.1\3rdParty\VTK\lib,PCL 1.8.1\3rdParty\FLANN\lib,PCL 1.8.1\3rdParty\OpenNI2\Lib,PCL 1.8.1\3rdParty\Qhull\lib

  (3)测试

使用点云生成点,并输出

  1. #include<iostream>
  2. #include<pcl/io/pcd_io.h>
  3. #include<pcl/point_types.h>
  4.  
  5. int main(int argc, char** argv) {
  6. pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
  7.  
  8. //Fill in the cloud data
  9. cloud->width = ;
  10. cloud->height = ;
  11. cloud->points.resize(cloud->width*cloud->height);
  12. for (size_t i = ; i < cloud->points.size(); ++i) {
  13. cloud->points[i].x = * rand() / (RAND_MAX + 1.0f);
  14. cloud->points[i].y = * rand() / (RAND_MAX + 1.0f);
  15. cloud->points[i].z = * rand() / (RAND_MAX + 1.0f);
  16. }
  17. std::cout << "Cloud before projection:" << std::endl;
  18. for (size_t i = ; i < cloud->points.size(); ++i) {
  19. std::cout << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << " " << std::endl;
  20. }
  21. system("pause");
  22. return ;
  23. }

过滤器

  1. #include<iostream>
  2. #include<pcl/io/pcd_io.h>
  3. #include<pcl/point_types.h>
  4. #include<pcl/ModelCoefficients.h>
  5. #include<pcl/filters/project_inliers.h>
  6. int main(int argc, char** argv) {
  7. pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
  8. pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_projected(new pcl::PointCloud<pcl::PointXYZ>);
  9. //Fill in the cloud data
  10. cloud->width = ;
  11. cloud->height = ;
  12. cloud->points.resize(cloud->width*cloud->height);
  13. for (size_t i = ; i < cloud->points.size(); ++i) {
  14. cloud->points[i].x = * rand() / (RAND_MAX + 1.0f);
  15. cloud->points[i].y = * rand() / (RAND_MAX + 1.0f);
  16. cloud->points[i].z = * rand() / (RAND_MAX + 1.0f);
  17. }
  18. std::cerr << "Cloud before projection:" << std::endl;
  19. for (size_t i = ; i < cloud->points.size(); ++i) {
  20. std::cerr << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << " " << std::endl;
  21. }
  22. // Create a set of planar coefficients with X=Y=0,Z=1
  23. pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients());
  24. coefficients->values.resize();
  25. coefficients->values[] = coefficients->values[] = ;
  26. coefficients->values[] = 1.0;
  27. coefficients->values[] = ;
  28. // Create the filtering object
  29. pcl::ProjectInliers<pcl::PointXYZ>proj;
  30. proj.setModelType(pcl::SACMODEL_PLANE);
  31. proj.setInputCloud(cloud);
  32. proj.setModelCoefficients(coefficients);
  33. proj.filter(*cloud_projected);
  34. std::cerr << "Cloud after projection: " << std::endl;
  35. for (size_t i = ; i < cloud_projected->points.size(); ++i) {
  36. std::cerr << " " << cloud_projected->points[i].x << " " << cloud_projected->points[i].y << " " << cloud_projected->points[i].z << " " << std::endl;
  37. }
  38. system("pause");
  39. return ;
  40. }

优化将点展示出来

  1. #include<iostream>
  2. #include<pcl/point_cloud.h>
  3. #include<pcl/point_types.h>
  4. #include <pcl/visualization/pcl_visualizer.h>
  5. int main() {
  6. pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
  7. //设置点云大小
  8. cloud->points.resize();
  9. //填充点云数据
  10. for (size_t i = ; i < cloud->points.size(); ++i)
  11. {
  12. cloud->points[i].x = * rand() / (RAND_MAX + 1.0f);
  13. cloud->points[i].y = * rand() / (RAND_MAX + 1.0f);
  14. cloud->points[i].z = * rand() / (RAND_MAX + 1.0f);
  15. }
  16. //声明视窗
  17. boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
  18. //设置背景色
  19. viewer->setBackgroundColor(1.0f, 0.5f, 1.0f);
  20. //预处理点云颜色
  21. pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> magenta(cloud, , , );
  22. //把点云加载到视窗
  23. viewer->addPointCloud(cloud, magenta, "cloud");
  24. //设置点云大小
  25. viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, , "cloud");
  26. //显示
  27. viewer->spin();
  28. }

注:

  如果出现以下错误

    (1)LNK1112 模块计算机类型“x64”与目标计算机类型“X86”冲突解决方案

 

 

  生成—配置管理器

      补充:

        需要重新配置,即2(2)部分的操作

     (2)C1010 在查找预编译头时遇到意外的文件结尾

    (3)C4996 'pcl::SAC_SAMPLE_SIZE': This map is deprecated and is kept only to prevent breaking existing user code.

      打开项目属性页>C/C++>常规>SDL检查(设置为否)

      重新编译,原先的错误信息变成了警告。

通过pcl的学习,教训也是很大的:

  不要偷懒,不要整个的复制代码,要认真读,认真看,不要跳跃,一定要沉下心来,沉下心来,要认真

pcl使用入门的更多相关文章

  1. PCL入门—点云操作 定义变量 显示点云 存储

    // 定义相关变量 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_ptr (new pcl::PointCloud<pcl::PointXYZ& ...

  2. CMake入门之创建一个基于PCL的最小工程

    最近在学习PCL,借助Cmake可省去繁琐的添加包含目录和依赖库操作. 一个典型的CMakeLists.txt内容通常为: cmake_minimum_required(VERSION 2.6 FAT ...

  3. Xamarin.Forms入门学习路线

    Xamarin 介绍 Xamarin是一套跨平台解决方案,目的是使用C#语言创造原生的iOS,Android,Mac和Windows应用. Xamarin的三个优势: Xamarin App拥有原生A ...

  4. ②springMVC入门

    1 1.1      需求 以案例作为驱动. springmvc和mybaits使用一个案例(商品订单管理). 功能需求:商品列表查询 1.2      环境准备 数据库环境:mysql5.1

  5. opencv 2.4.9+pcl 1.6+vs2010+win7 32开发环境配置

    最近在做图像方面的开发,需要对软件开发平台进行配置,我查找了关于这些方面的内容,由于软件版本很多,每个人的开发平台又不一样所以在对平台进行搭建过程中遇到了很多问题,下面我将我搭建平台的流程做一个记录. ...

  6. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  7. 跟我一起学PCL打印语言(一)

    引言 本人从事打印机开发和打印驱动开发的相关工作,深感资料特别是中文资料的匮乏和不成系统,对新入门的从事该行业的人来说,门槛很高.在这里一方面是将开发中遇到的相关知识点整理出来,另一方面也能够促进自己 ...

  8. C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

    前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows P ...

  9. (一)ROS系统入门 Getting Started with ROS 以Kinetic为主更新 附课件PPT

    ROS机器人程序设计(原书第2版)补充资料 教案1 ROS Kinetic系统入门 ROS Kinetic在Ubuntu 16.04.01 安装可参考:http://blog.csdn.net/zha ...

随机推荐

  1. python正则表达式练习题

    # coding=utf-8 import re # 1. 写一个正则表达式,使其能同时识别下面所有的字符串:'bat','bit', 'but', 'hat', 'hit', 'hut' s =&q ...

  2. Vue的参数请求与传递

    Vue不同模板之间的参数传递 页面路由带参数的跳转: 参数接收: Vue向服务器请求资源的两种方式 VUE-RESOURCE 1.Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不 ...

  3. SpringBoot集成MyBatis的Bean配置方式

    SpringBoot集成MyBatis的Bean配置方式 SpringBoot是一款轻量级开发的框架,简化了很多原先的xml文件配置方式,接下来就介绍一下如何不适用XML来配置Mybatis spri ...

  4. jQuery通用遍历方法each的实现

    each介绍 jQuery 的 each 方法,作为一个通用遍历方法,可用于遍历对象和数组. 语法为: jQuery.each(object, [callback]) 回调函数拥有两个参数:第一个为对 ...

  5. django-发送文件

    客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码. settings.py配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBac ...

  6. Vue --- 前后台总结

    请求生命周期: 1.先请求路由,在去替换APP.vue中的router-views 2.@表示src 3.加载全局css: require('@/assets/....') 4.获取当前路由 this ...

  7. SOA与ESB,微服务与API网关

    SOA与ESB,微服务与API网关 SOA: ESB: 微服务: API网关: 参考资料: 1.漫画微服务,http://www.sohu.com/a/221400925_100039689 2.SO ...

  8. Kerberos身份验证流程

    介绍:Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议.它旨在通过使用密钥加密技术为客户端/服务器应用程序提供强身份验证. 在 Kerberos 认证中,最主要的问题是如何 ...

  9. JavaScript基础07——BOM

    BOM概念   BOM是Browser Object Model的缩写,简称浏览器对象模型.这个对象就是window         BOM提供了独立于内容而与浏览器窗口进行交互的对象         ...

  10. C# where 泛型类型约束

    泛型定义中的 where 子句指定对用作泛型类型.方法.委托或本地函数中类型参数的参数类型的约束. 约束可指定接口.基类或要求泛型类型为引用.值或非托管类型. 它们声明类型参数必须具备的功能. 作为约 ...