Windows で Point Cloud Library をビルド
Point Cloud Library は、2次元画像、3次元画像、ポイントクラウド処理用のプログラムの集まり。 features, keypoint, tracking, segmentation, registration, visualization などの機能がある.
このページでは,Windows での Point Cloud Library のインストール手順を図解等で説明する.
目次
前準備
- Visual Studio Community 2013 のインストール
別の Web ページで、Visual Studio Community 2013 のインストールについて説明している.
- cmake のインストール
別の Web ページで、cmake のインストールについて説明している.
- git, pkg-config-lite のインストール
別の Web ページで、git と pkg-config-lite のインストールについて説明している.
- All-in-one installer MSVC2013 のインストール (install PCL on Windows using All-in-one installer MSVC2013)
Boost, Eigen, GLANN, QHull, VTK が同封
- Web ページ
http://unanancyowen.com/pcl181/
(ありがとうございます)
- インストール先ディレクトリの設定例
*デフォルトの設定を変えてしまうと、シートカットなどがうまく動かない場合があります(自己責任で)
- 環境変数 PCL_ROOT の設定
「マイコンピュータ」 → 「プロパティ」 → 「詳細設定」 → 「環境変数」のように 操作し、次のように設定する
<設定例>
- 変数名: PCL_ROOT
- 変数値の設定例: 「C:\PCL1.7.2」
- 環境変数 PATH の設定
「マイコンピュータ」 → 「プロパティ」 → 「詳細設定」 → 「環境変数」のように 操作し、次のように設定する
<設定例>
- 変数名: PATH
- 変数値: 「%PCL_ROOT%\bin;%PCL_ROOT%\3rdParty\FLANN\bin;%PCL_ROOT%\3rdParty\Qhull\bin;%PCL_ROOT%\3rdParty\VTK\bin;」を追加。(他のパスとは「;」で区切る)
- 環境変数の設定の確認
Windows のコマンドプロンプトで「pcl_viewer_release.exe」を実行し、 使い方の説明が出てくれば成功.
- Web ページ
Boost 1.57 のインストール
- まず、
C:\PCL1.7.2\3rdParty\Boost を
C:\PCL1.7.2\3rdParty\Boost156 のように変えておく.
- Web ページを開く (Open the Boost Web page)
- 「Prebuilt windows binaries」をクリック (Click "Prebuilt windows binaries")
- 最新版を選ぶ (Select the newest version)
- ファイルを選ぶ (Select a file)
- インストール (Start Install)
- インストール・ディレクトリ (Install Directory)
- インストール (Start Install)
- インストール終了 (Finish Install)
Point Cloud Library のソースコードのダウンロードとビルド
- Windows のコマンドプロンプトで次を実行 (Do the folloing using Windows cmd.exe)
set PCL_ROOT=C:\PCL1.7.2 mkdir %PCL_ROOT%\sources cd %PCL_ROOT%\sources git clone https://github.com/PointCloudLibrary/pcl.git cd pcl set Boost_ROOT=%PCL_ROOT%\3rdParty\Boost set EIGEN_ROOT=%PCL_ROOT%\3rdParty\Eigen set FLANN_ROOT=%PCL_ROOT%\3rdParty\FLANN set QHULL_ROOT=%PCL_ROOT%\3rdParty\Qhull set VTK_ROOT=%PCL_ROOT%\3rdParty\VTK set EIGEN_INCLUDE_DIR=%PCL_ROOT%\3rdParty\Eigen\include\eigen3 set VTK_DIR=%PCL_ROOT%\3rdParty\VTK\lib\cmake\vtk-1.6.1 set BOOST_LIBRARYDIR=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0 set Boost_DATE_TIME_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_date_time-vc120-mt-1_57.lib set Boost_DATE_TIME_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_date_time-vc120-mt-gd-1_57.lib set Boost_FILESYSTEM_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_filesystem-vc120-mt-1_57.lib set Boost_FILESYSTEM_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_filesystem-vc120-mt-gd-1_57.lib set Boost_INCLUDE_DIR=%PCL_ROOT%\3rdParty\Boost\boost set Boost_IOSTREAMS_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_iostreams-vc120-mt-1_57.lib set Boost_IOSTREAMS_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_iostreams-vc120-mt-gd-1_57.lib set Boost_MPI_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_mpi-vc120-mt-1_57.lib set Boost_MPI_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_mpi-vc120-mt-gd-1_57.lib set Boost_SERIALIZATION_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_serialization-vc120-mt-1_57.lib set Boost_SERIALIZATION_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_serialization-vc120-mt-gd-1_57.lib set Boost_SYSTEM_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_system-vc120-mt-1_57.lib set Boost_SYSTEM_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_system-vc120-mt-gd-1_57.lib set Boost_THREAD_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_thread-vc120-mt-1_57.lib set Boost_THREAD_LIBRARY_RELEASE=%PCL_ROOT%\3rdParty\Boost\lib64-msvc-12.0\boost_thread-vc120-mt-gd-1_57.lib set FLANN_INCLUDE_DIR=%PCL_ROOT%\3rdParty\flann\include set FLANN_LIBRARY=%PCL_ROOT%\3rdParty\flann\lib\flann_cpp_s.lib set FLANN_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\flann\lib\flann_cpp_s-gd.lib set QHULL_INCLUDE_DIR=%PCL_ROOT%\3rdParty\qhull\include\libqhull set QHULL_LIBRARY=%PCL_ROOT%\3rdParty\qhull\lib\qhullstatic.lib set QHULL_LIBRARY_DEBUG=%PCL_ROOT%\3rdParty\qhull\lib\qhullstatic_d.lib cmake -DCMAKE_INSTALL_PREFIX=%PCL_ROOT% -DWITH_CUDA=FALSE -DWITH_FZAPI=FALSE -DWITH_LIBUSB=FALSE -DWITH_OPENNI=FALSE -DWITH_OPENNI2=FALSE -DWITH_PCAP=FALSE -DWITH_PXCAPI=FALSE -DWITH_QT=FALSE -DWITH_PNG=FALSE -DWITH_ENSENSO=FALSE -DBUILD_OPENNI=FALSE -DBUILD_all_in_one_installer=FALSE -DBUILD_examples=TRUE -DBUILD_apps=TRUE .
- Build files have been written... と表示されることの確認 ("Build files have been written..." is successfull completion)
- PCL.sln を開く (open the PCL.sln)
- ビルドの設定 (Build Setting)
64 ビット Windows のときは, 64ビット版の Boost などを使うので、x86_64
- Waiting for finishing of scanning if some scanning has started
- Build the Solution
update the libpcl
prerequisites
cmake (install cmake)
create symbolic link or directory copy
--- see also http://pointclouds.org/media/ --- http://zuqqhi2.com/?cat=154
インストール手順
- Web ページを開く
- 「Files」をクリック
- Windows 版が欲しいので「opencv-win」をクリック
- 最新版を選ぶ
- クリックするとダウンロードが始まる
- ダウンロードしたファイルを実行
- 解凍先ディレクトリを設定する.分かりやすいディレクトリを指定すること
解凍先ディレクトリ (下の図では C:\OpenCV300)を覚えておく
- 解凍が始まる
- 環境変数 OPENCV_DIR の設定
「マイコンピュータ」 → 「プロパティ」 → 「詳細設定」 → 「環境変数」のように 操作し、次のように設定する
<設定例>
64ビットWindows の場合
- 変数名: OPENCV_DIR
- 変数値: 「C:\OpenCV300\opencv\build\x64」を追加。(他のパスとは「;」で区切る)
32ビットWindows の場合
- 変数名: OPENCV_DIR
- 変数値: 「C:\OpenCV300\opencv\build\x86」を追加。(他のパスとは「;」で区切る)
- 環境変数 PATH の設定
「マイコンピュータ」 → 「プロパティ」 → 「詳細設定」 → 「環境変数」のように 操作し、次のように設定する
- 変数名: PATH
- 変数値: 「%OPENCV_DIR%\vc12\bin」を追加。(他のパスとは「;」で区切る)
Microsoft Visual C++ を用いて OpenCV 3.0.0 ベータ本体をビルド
- cmake-gui を起動
- ソースコードのディレクトリと、ビルド結果を置くディレクトリの指定
- ソースコードのディレクトリ: C:/OpenCV300/opencv/sources
- ビルド結果を置くディレクトリ: C:/OpenCV300/opencv/build
- 「Configure」をクリック
- 「Use default native compilers」を選ぶ
- Microsoft Visual C++ のバージョンを指定し、「Finish」をクリック
- BUILD_opencv_world にチェックする.
- (オプション) 元の画面で「BUILD_EXAMPLES」をチェック
- 「Generate」をクリック
- OpenCV.sln を開く
- Release バージョンを選ぶ
- 「ビルド (Build)」を選び、「ソリューションのビルド (Build Soulution)」を開始する
- ビルドの結果、エラーメッセージが出ていないことを確認
- 環境変数 OPENCV_DIR の設定
「マイコンピュータ」 → 「プロパティ」 → 「詳細設定」 → 「環境変数」のように 操作し、次のように設定する
- 変数名: OPENCV_DIR
- 変数値: 「C:\OpenCV300\opencv\build」を追加。(他のパスとは「;」で区切る)
- 環境変数 PATH の設定
「マイコンピュータ」 → 「プロパティ」 → 「詳細設定」 → 「環境変数」のように 操作し、次のように設定する
- 変数名: PATH
- 変数値: 「%OPENCV_DIR%\bin\release」を追加。(他のパスとは「;」で区切る)
 
使ってみる
- Microsoft Visual Studio 2013 の起動 (launch Microsoft Visual Studio 2003)
- 「ファイル (File)」 → 「新規 (New)」 → 「プロジェクト (Project)」
- Visual C++ の Win32 コンソールアプリケーションを選び、
プロジェクト名を付ける
(Select "Visual C++" and then "Win32 Console Application")
プロジェクト名は何でも良い
- 「次へ (Next)」をクリック
- 空のプロジェクト (Empty Project) を選ぶ
- (オプション)
64 ビット Windows を使う場合の設定
- 「ビルド (Buold)」 →「構成マネージャ (Configuration Manager)」
- 「プラットフォーム (Platform)」を選ぶ
- 「新規作成 (New)」を選ぶ
- 「新しいプラットフォーム (New Platform)」に
「x64 (New Platform)」を指定する.
- 「ビルド (Buold)」 →「構成マネージャ (Configuration Manager)」
- OpenCV に関する設定
(OpenCV Settings)
- プロパティ・マネージャ (Property Manager)のウインドウを開く (Open a property manager window)
あとで、プロパティを確認したいときに便利
- プロジェクトを右クリックしてプロパティ (Properties) を選ぶ
(Right click the project, then select the Properties)
- インクルード・ディレクトリの設定 (Set include directories)
C/C++ → General と操作し、 次のように設定
- Configuration : All Configurations
- Additional Include Directories : $(OPENCV_DIR)\include
- ライブラリ・ディレクトリの設定 (Set library directories)
Linker → General と操作し、 次のように設定
- Configuration : All Configurations
- Additional Library Directories : $(OPENCV_DIR)\lib\release
- ライブラリの設定 (Set libraries)
Linker → Input と操作し、 Additional Dependencies を選び、 次のように設定し、「OK」をクリック
- Configuration : Active (Debug)
- Additional Dependencies : opencv_ts300d.lib opencv_world300d.lib
さらに、次のように設定し、「OK」をクリック
- Configuration : Active (Release)
- Additional Dependencies : opencv_ts300.lib opencv_world300.lib
- プロパティ・マネージャ (Property Manager)のウインドウを開く (Open a property manager window)
- ソースコードの追加操作
- ソース・ファイル (Source File) を右クリックし、
追加 (New) →
新規アイテム (New Item) と操作する
- 「C++ File (.cpp)」を選び、
「追加 (Add)」をクリック
- ソース・ファイル (Source File) を右クリックし、
追加 (New) →
新規アイテム (New Item) と操作する
- エディタのウインドウを使い,ソースプログラムを入力
(Edit a source program in the editor window)
https://docs.opencv.org/trunk/doc/tutorials/introduction/display_image/display_image.html#display-image に記載のサンプル・コード
「C:\\HappyFish.jpg」のところは、画像ファイル名を設定すること
#include<opencv2/core/core.hpp> #include<opencv2/imgcodecs.hpp> #include<opencv2/highgui/highgui.hpp> #include<iostream> #include<string> using namespace cv; using namespace std; int main( int argc, char** argv ) { string imageName("C:\\HappyFish.jpg"); if( argc > 1) { imageName = argv[1]; } Mat image; image = imread(imageName.c_str(), IMREAD_COLOR); // Read the file if( image.empty() ) // Check for invalid input { cout << "Could not open or find the image" << std::endl ; return -1; } namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display. imshow( "Display window", image ); // Show our image inside it. waitKey(0); // Wait for a keystroke in the window return 0; }
- ビルド (Build)
プロジェクト名(下の画面では「ConsoleApplication」)を選び, 「ビルド」と操作する
ビルドの正常終了を確認する.
- 開始 (Start)
「デバッグ (Debug)」→「Start Without Debugging」 (または CTRL + F5キー). ウインドウが現れるので,結果を確認.