[PCL] Point Cloud Library 1.5.1のインストール

Point Cloud Library(以下PCL)は点群データを扱うためのライブラリです.

最近ではMicrosoft Kinectなどが3次元点群データの入力機器として台頭しているため,役立ちます.

大量の依存関係が存在するために使用のハードルが高いという難点がありましたが,最近はAll-in-oneインストーラなどにより使いやすくなってきた模様(あくまで相対的に).

ほとんど自分用のインストールまとめ.本ページを参考にした場合の損害については,著者は一切の責任を負いません.

下記のページを参考にしました.ありがとうございます.

http://derivecv.tumblr.com/tagged/PCL%E3%82%92%E8%A7%A6%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%EF%BC%81

http://derivecv.tumblr.com/post/12359379355

http://d.hatena.ne.jp/kirii/20111120/1321779238

http://kidd0320.hatenablog.com/entry/2012/02/29/233250

注意事項

想定環境はMicrosoft Windows 7,Visual Studio 2010 Professional.

インストールするバージョンはPCL 1.5.1です.

Visual Studio 2010 Express Editionだと,本ページの作業は出来ますが,DLLの不足で実行時にエラーが出ます.

その場合はソースコードのビルドから始める必要があり,一気にハードルが上がります.その方法は記載しません(なぜなら,まだ自分もうまくいっていない).

じつはOSは64ビットなんですが,32ビットコンパイルを目指していることに注意(他のライブラリとの兼ね合いのため…)

ただし,64ビット開発環境においても,部分的に役立つ情報はあるかもしれません.

いくつかの専門用語および設定項目が出てきます.これらを理解し,設定できない人には,PCLの導入および使用はハードルが高いかもしれません.

パッケージのダウンロード

Microsoft Windows +Visual Studio 2010環境向けに限っては,ビルド済みパッケージが配布されているため,多少は楽.

Point Cloud Library 1.5.1 All-in-one installerをダウンロード.32ビット版で270MB以上あるので,気長にお待ちを.

基本的に必要なファイルはこれだけでよいです.

インストール

インストーラを実行して,環境変数Pathに下記の二つを追加します.

各自のインストールパスに合わせて適宜読み替えてください.とくに32ビットOSの場合はパスが下記と違いますので注意.

  • C:\Program Files (x86)\PCL 1.5.1\bin
  • C:\Program Files (x86)\OpenNI\Bin

Visual Studio 2010の設定

まず,ヘッダファイルのパスを追加します.

  • C:\Program Files (x86)\PCL 1.5.1\include\pcl-1.5
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Boost\include
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Eigen\include
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Flann\include
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Qhull\include\libqhullcpp
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\VTK\include\vtk-5.8
  • C:\Program Files (x86)\OpenNI\Include

次に,ライブラリファイルのパスを追加します.

  • C:\Program Files (x86)\PCL 1.5.1\lib
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Boost\lib
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Flann\lib
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\Qhull\lib
  • C:\Program Files (x86)\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8
  • C:\Program Files (x86)\OpenNI\Lib

追加の依存ファイル群を設定します.

下記はフルセットです.ソースコードで利用したものに合わせて,適宜間引くことができます.

下記をコピペすればとりあえずは動きます.

ちなみにこの話は以前のバージョンを知っている人向けですが,1.5.0あたりでライブラリの名前が変わっているので注意.

まずは,Debugビルド用の追加の依存ファイル.

pcl_apps_debug.lib

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_octree_debug.lib

pcl_range_image_border_extractor_debug.lib

pcl_registration_debug.lib

pcl_sample_consensus_debug.lib

pcl_search_debug.lib

pcl_segmentation_debug.lib

pcl_surface_debug.lib

pcl_tracking_debug.lib

pcl_visualization_debug.lib

flann-gd.lib

flann_s-gd.lib

flann_cpp_s-gd.lib

qhull6_d.lib

qhullcpp_d.lib

qhullstatic_d.lib

qhullstatic_p_d.lib

openNI.lib

OpenNI.jni.lib

NiSampleModule.lib

NiSampleExtensionModule.lib

MapReduceMPI-gd.lib

mpistubs-gd.lib

vtkalglib-gd.lib

vtkCharts-gd.lib

vtkCommon-gd.lib

vtkDICOMParser-gd.lib

vtkexoIIc-gd.lib

vtkexpat-gd.lib

vtkFiltering-gd.lib

vtkfreetype-gd.lib

vtkftgl-gd.lib

vtkGenericFiltering-gd.lib

vtkGeovis-gd.lib

vtkGraphics-gd.lib

vtkhdf5-gd.lib

vtkHybrid-gd.lib

vtkImaging-gd.lib

vtkInfovis-gd.lib

vtkIO-gd.lib

vtkjpeg-gd.lib

vtklibxml2-gd.lib

vtkmetaio-gd.lib

vtkNetCDF-gd.lib

vtkNetCDF_cxx-gd.lib

vtkpng-gd.lib

vtkproj4-gd.lib

vtkRendering-gd.lib

vtksqlite-gd.lib

vtksys-gd.lib

vtktiff-gd.lib

vtkverdict-gd.lib

vtkViews-gd.lib

vtkVolumeRendering-gd.lib

vtkWidgets-gd.lib

vtkzlib-gd.lib

opengl32.lib

次に,Releaseビルド用の追加の依存ファイル.

pcl_apps_release.lib

pcl_common_release.lib

pcl_features_release.lib

pcl_filters_release.lib

pcl_io_release.lib

pcl_io_ply_release.lib

pcl_kdtree_release.lib

pcl_keypoints_release.lib

pcl_octree_release.lib

pcl_range_image_border_extractor_release.lib

pcl_registration_release.lib

pcl_sample_consensus_release.lib

pcl_search_release.lib

pcl_segmentation_release.lib

pcl_surface_release.lib

pcl_tracking_release.lib

pcl_visualization_release.lib

flann.lib

flann_s.lib

flann_cpp_s.lib

qhull6.lib

qhullcpp.lib

qhullstatic.lib

qhullstatic_p.lib

openNI.lib

OpenNI.jni.lib

NiSampleModule.lib

NiSampleExtensionModule.lib

MapReduceMPI.lib

mpistubs.lib

vtkalglib.lib

vtkCharts.lib

vtkCommon.lib

vtkDICOMParser.lib

vtkexoIIc.lib

vtkexpat.lib

vtkFiltering.lib

vtkfreetype.lib

vtkftgl.lib

vtkGenericFiltering.lib

vtkGeovis.lib

vtkGraphics.lib

vtkhdf5.lib

vtkHybrid.lib

vtkImaging.lib

vtkInfovis.lib

vtkIO.lib

vtkjpeg.lib

vtklibxml2.lib

vtkmetaio.lib

vtkNetCDF.lib

vtkNetCDF_cxx.lib

vtkpng.lib

vtkproj4.lib

vtkRendering.lib

vtksqlite.lib

vtksys.lib

vtktiff.lib

vtkverdict.lib

vtkViews.lib

vtkVolumeRendering.lib

vtkWidgets.lib

vtkzlib.lib

opengl32.lib

ここまで設定すれば,PCLのインストール時についてきたチュートリアルの,たとえばcloud_viewerなどはビルドおよび動作するはずです.