[PCL] Point Cloud Library 1.5.1のインストール
Point Cloud Library(以下PCL)は点群データを扱うためのライブラリです.
最近ではMicrosoft Kinectなどが3次元点群データの入力機器として台頭しているため,役立ちます.
大量の依存関係が存在するために使用のハードルが高いという難点がありましたが,最近はAll-in-oneインストーラなどにより使いやすくなってきた模様(あくまで相対的に).
ほとんど自分用のインストールまとめ.本ページを参考にした場合の損害については,著者は一切の責任を負いません.
下記のページを参考にしました.ありがとうございます.
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などはビルドおよび動作するはずです.