CMake を使用して C++ サンプルを構成し、Windows の Visual Studio でビルドする
このチュートリアルでは、CMake を使用して Zivid C++ サンプルを構成し、Windows の Visual Studio を使用してビルドする方法を示します。
要件
オプションの要件
一部のサンプルは、特に次のような外部ライブラリに依存しています。
注釈
以下の手順は、以下のバージョンの依存関係でテスト済みです。
Visual Studio 2019 以降
CMake 3.24 以降
PCL 1.12.1
Eigen 3.4.0
OpenCV 4.7.0
他のバージョンを使用している場合、問題が発生する可能性があります。
手順
C++ サンプルのクローンを作成する
GitHub Zivid C++ Samples リポジトリのクローンを作成します。クローンを作成するには、キーボードの Win + R キーを押してコマンド プロンプトを起動し、「cmd」と入力して Enter を押します。
リポジトリをクローンしたい場所に移動します。例:
cd C:\Users\Public
次に、以下のコマンドを実行します。
git clone https://github.com/zivid/zivid-cpp-samples
CMake を使用してソリューションを構成する
コマンド プロンプトまたは CMake GUI を介して CMake を実行します。
zivid-cpp-samples ディレクトリ内にビルドディレクトリを作成し、以下のコマンドを実行してソリューションを設定します。
mkdir build && cd build
cmake -DUSE_EIGEN3=OFF -DUSE_OPENCV=OFF -DUSE_PCL=OFF ../source
Tip
上記のコマンドを使用するには、システム PATH に cmake が存在することを確認してください。CMake をシステム PATH に追加する方法については、以下のドロップダウンを参照してください。
CMake をシステム PATH に追加する
PC で、 Control Panel → System and Security → System → Advanced System Settings → Environment Variables に移動します。システム変数 で、 Path 変数を選択し、 Edit をクリックします。
Edit environment variable ウィンドウで New をクリックし、CMake バイナリへのパスを追加します。例:
C:\Program Files\CMake\bin
Program Files に CMake をインストールしている場合。
警告
変更を有効にするには、Windows アカウントからサインアウトし、再度サインインする必要がある場合があります。
生成された Visual Studio ソリューション ZividCppSamples.sln をファイル エクスプローラーで開き、サンプルをさらにビルドします。
CMake GUI を開き、ビルド フォルダーのソース フォルダーと出力先を選択します。
Configure をクリックします。プロジェクトのジェネレーターを指定し、(オプションの) プラットフォームが x64 であることを確認します。 Finish をクリックします。
もう一度 Configure をクリックします。
CMake エラーで OK をクリックし、変数 USE_EIGEN3 、 USE_OPENCV および USE_PCL を無効にして、これらの依存関係なしでソリューションを構成します。
最後に Configure をもう一度クリックし、 Generate と Open Project をクリックして Visual Studio ソリューションを開きます。
ソリューションをビルドする
Visual Studio で、ビルド構成を Debug から Release に変更してください。Debug ビルドではコンパイラの最適化が無効になり、パフォーマンスが著しく低下するため、ベンチマークや本番環境での使用には適していません。
Ctrl + Shift + B を押してソリューションをビルドします。
サンプルプログラムを実行する
Release フォルダーに移動し、ファイル エクスプローラーで exe をダブルクリックするか、コマンド プロンプトを使用してサンプル プログラムを実行します。例:
.\CaptureVis3D.exe
サンプルデータを必要とするサンプルの実行
一部のサンプルでは、点群、ファイルカメラ、変換など、実行に追加データが必要です。ダウンロードとインストールの方法については サンプルデータ を参照してください。
オプションの依存関係を使用したサンプルの構成
一部のサンプルは Point Cloud Library 、 Eigen 、 OpenCV 、および/または Halcon に依存しています。これらの依存関係のいずれか、または複数を含むサンプルを実行する場合は、以下のドロップダウンの手順に従ってください。
オプションの依存関係
実行するサンプルプログラムに基づいて必要な依存関係をインストールします。以下の表を参照してください。
サンプルプログラム |
PCL |
Eigen |
OpenCV |
OpenCV (CUDA) |
Halcon |
|---|---|---|---|---|---|
ReadPCLVis3D |
はい |
||||
CaptureWritePCLVis3D |
はい |
||||
CaptureAndVisualizeNormals |
はい |
||||
StitchByTransformation |
はい |
||||
StitchByTransformationFromZDF |
はい |
||||
StitchViaLocalPointCloudRegistration |
はい |
||||
StitchContinuouslyRotatingObject |
はい |
||||
StitchUsingRobotMountedCamera |
はい |
||||
MaskPointCloud |
はい |
||||
Capture2DAnd3D |
はい |
はい |
|||
ROIBoxViaCheckerboard |
はい |
||||
UtilizeHandEyeCalibration |
はい |
||||
PoseConversions |
はい |
||||
ROIBoxViaArucoMarker |
はい |
||||
CaptureUndistort2D |
はい |
||||
CreateDepthMap |
はい |
||||
ProjectAndFindMarker |
はい |
||||
ReprojectPoints |
はい |
||||
ReadProjectAndCaptureImage |
はい |
||||
GammaCorrection |
はい |
||||
AllocateMemoryForPointCloudData |
はい |
||||
CaptureAndConvertImageWithOpenCVOnCuda |
はい |
||||
TransformPointCloudViaCheckerboard |
はい |
||||
TransformPointCloudViaArucoMarker |
はい |
||||
CaptureHalconViaGenICam |
はい |
||||
CaptureHalconViaZivid |
はい |
Download the latest stable release of Eigen from https://libeigen.gitlab.io/ and extract the folder to your desired destination. When configuring the CMake project, include Eigen to configure the samples that depend on it.
zivid-cpp-samples で作成したビルドディレクトリに移動して、次のコマンドを実行します。
cmake -DEIGEN3_INCLUDE_DIR=<path> -DUSE_OPENCV=OFF -DUSE_PCL=OFF ../sourceここで
<path>は Eigen をインストールした場所への完全なパスです。例:C:/Program Files/Eigen。https://github.com/PointCloudLibrary/pcl/releases で
.exeを選択して、ビルド済みの PCL バイナリをダウンロードしてインストールします。サードパーティライブラリをインストールするオプションをオンにします。![]()
Zivid PCL コードサンプルを構成する前に、いくつかの設定を PATH システム変数に含める必要があります。PC で、 Control Panel → System and Security → System → Advanced System Settings → Environment Variables に移動します。システム変数 で、
Path変数を選択し、 Edit をクリックします。![]()
Edit environment variable ウィンドウで New をクリックし、PCL バイナリと OpenNI2 (サードパーティライブラリ) へのパスを追加します。例:
C:\Program Files\PCL 1.12.1\bin C:\Program Files\OpenNI2\ToolsPCL 1.12.1 と OpenNI2 を Program Files にインストールしている場合。変更を反映させるには、Windows アカウントからサインアウトして再度サインインする必要がある場合があります。
警告
VTK などのサードパーティ製 PCL ライブラリには、手動でリンクする必要がある場合があります。エラーが発生した場合は、ライブラリのバイナリへのパスを PATH システム変数に追加してください。例えば、PCL 1.12.1 を Program Files にインストールした場合、VTK の場合は
C:/Program Files/PCL 1.12.1/3rdParty/VTK/binを追加します。CMake プロジェクトを構成するとき、PCL へのパスはすでに構成されているはずです。
https://opencv.org/releases/ から事前にビルドされた OpenCV バイナリをダウンロードしてインストールします。希望の場所に展開します。例:
C:\Users\PublicZivid OpenCV コードサンプルを構成する前に、いくつかの設定を PATH システム変数に含める必要があります。PC で、 Control Panel → System and Security → System → Advanced System Settings → Environment Variables に移動します。システム変数 で、
Path変数を選択し、 Edit をクリックします。![]()
Edit environment variable ウィンドウで New をクリックし、OpenCV バイナリへのパスを追加します。例:
C:\Program Files\opencv\build\x64\vc16\binOpenCV 4.7.0 をインストールして
C:/Program Files/opencvに展開した場合。警告
変更を有効にするには、Windows アカウントからサインアウトし、再度サインインする必要がある場合があります。
CMake プロジェクトを構成するときに、OpenCV を含めて依存するサンプルを構成します。
zivid-cpp-samples で作成したビルドディレクトリに移動して、次のコマンドを実行します。
cmake -DOpenCV_DIR=<path> -DUSE_EIGEN3=OFF -DUSE_PCL=OFF ../sourceここで
<path>は OpenCV ビルドフォルダへの完全なパスです。例:C:/Program Files/opencv/build。Halcon C++ サンプルを実行するには、PC に Halcon がインストールされている必要があります。詳細な手順については Windows 用 Zivid + HALCON をインストールする を参照してください。
Halcon をインストールした後、Halcon サンプルを使用するように CMake を構成します。
複数の依存関係を一度に構成したい場合は、CMake で複数の依存関係を同時に追加するだけです。たとえば、Eigen 、PCL 、OpenCV を必要とするすべてのサンプルを使用したい場合は、次のコマンドを実行できます。
cmake -DEIGEN3_INCLUDE_DIR=<path-to-eigen> -DUSE_PCL=ON -DOpenCV_DIR=<path-to-opencv> ../source
ここで <path-to-eigen> と <path-to-opencv> は、Eigen フォルダーと OpenCV フォルダーへのパスです。
サンプルプログラムをデバッグする
サンプルをデバッグするには、PATH 環境変数に C:/Program Files/Zivid/bin_debug を追加する必要があります。これを行うには、以下のドロップダウンの手順に従ってください。
サンプルプログラムのデバッグ
PC で、 Control Panel → System and Security → System → Advanced System Settings → Environment Variables に移動します。
システム変数 で、 Path 変数を選択し、 Edit をクリックします。
Environment variables ウィンドウで、 New (ウィンドウの右上隅、ユーザー変数のセクション内) をクリックし、次の値を追加します。
C:\Program Files\Zivid\bin_debug
注釈
入力ファイルに依存するプログラムをデバッグする場合は、作業ディレクトリを ${TargetDir} に変更する必要があります。
ビルド構成を Release から Debug に変更します。次に F5 をクリックしてデバッグ付きでビルドおよび実行します。
バージョン履歴
SDK |
変更点 |
|---|---|
2.17.0 |
非構造化点群の可視化に対するネイティブサポートが追加されたため、Open3D への依存関係を削除しました。 |
2.16.0 |
Ubuntu 上でオプションの依存関係を持つ C++ サンプルを設定する手順を追加しました。Ubuntu と Windows の両方で Open3D を設定する手順を追加しました。 |