Point Cloud Libraryは点群データを扱うのにとても便利なライブラリです。Visual Studio 2019で使ってみましたので、その方法についてご紹介します。
まず最初にPoint Cloud Library(PCL)をインストールするために、Windows/Linux/MacOSの環境に様々なライブラリをインストールすることが出来るMicrosoftのパッケージマネージャVCPKGをセットアップします。
まずGit BashまたはPowerShellを起動して、VCPKGをインストールしたいフォルダに移動します。私の環境では、C:\srcに移動しました。移動したら、下記コマンドを実行して、vcpkgのクローンとビルドを実行します。
> git clone https://github.com/microsoft/vcpkg
> .\vcpkg\bootstrap-vcpkg.bat
ビルドが完了したら、次にPCLのインストールです。C:\srcフォルダのままで、PowerShellから下記コマンドを実行することでPCLをインストールが出来ます。
> .\vcpkg\vcpkg.exe install pcl:x64-windows
上記コマンドを実行した際に、「Please install the English language pack.」というメッセージが出た場合は、Visual Studio Installで英語の言語パックを追加インストールしてから、上記コマンドを再度実行してください。言語パックをインストールする画面は下記です。「英語」にチェックを入れて追加インストールしてください。
PCLに必要な全てのライブラリのダウンロードとインストールも実行されるので結構時間がかかりますので、我慢強く待ってください。無事に完了した画面が下記になります。
C:\src\vcpkg\installed\x64-windows に必要なincludeやlibなどがインストールされています。
サンプルに何かPCLを使ったVisual Studioプロジェクトを作成してビルドしてみます。ここでは、PCLのチュートリアルのひとつReading Point Cloud data from PCD filesをビルドして動作確認してみます。
C:\src\pcd_read フォルダにCMakeLists.txt と pcd_read.cpp の2つのファイルを作成します。
CMakeLists.txt は下記を記述します。
cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(pcd_read) find_package(PCL 1.2 REQUIRED) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) add_executable (pcd_read pcd_read.cpp) target_link_libraries (pcd_read ${PCL_LIBRARIES})
pcd_read.cpp は下記を記述します。
#include <iostream> #include#include int main (int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); if (pcl::io::loadPCDFile<pcl::PointXYZ> ("test_pcd.pcd", *cloud) == -1) //* load the file { PCL_ERROR ("Couldn't read file test_pcd.pcd \n"); return (-1); } std::cout << "Loaded " << cloud->width * cloud->height << " data points from test_pcd.pcd with the following fields: " << std::endl; for (const auto& point: *cloud) std::cout << " " << point.x << " " << point.y << " " << point.z << std::endl; return (0); }
上記ファイルの作成後、PowerShellでカレントディレクトリをC:\src\pcd_readに移動して、下記のCMakeコマンドを実行します。
> & 'C:\Program Files\CMake\bin\cmake.exe' -BC:\src\pcd_read\build -DCMAKE_TOOLCHAIN_FILE=C:\src\vcpkg\scripts\buildsystems\vcpkg.cmake
正常にCMakeが完了すればC:\src\pcd_read\buildフォルダに pcd_read.sln が生成されているので、ダブルクリックでVisual Studio 2019 を開きます。
ソリューションエクスプローラ上の pcd_read を右クリックして、 [スタートアッププロジェクトに設定]を実行します。もう一度pcd_read を右クリックして、 [プロパティ]を実行します。右側ウィンドウで[デバッグ]を選択して、左側ウィンドウで[作業ディレクトリ]に「C:\src\pcd_read」を設定します。
メニューから[ビルド]-[ソリューションのビルド]でビルドします。
動作確認に使うファイルbun0.pcdはここからダウンロードしてC:\src\pcd_readに置きます。
メニューから[デバッグ]-[デバッグの開始]で実行します。以下のように読み込んだbun0.pcdファイルの点群座標が表示されれば成功です。