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 PanelSystem and SecuritySystemAdvanced System SettingsEnvironment Variables に移動します。システム変数 で、 Path 変数を選択し、 Edit をクリックします。

Windows のシステム情報のスクリーンショット。

Edit environment variable ウィンドウで New をクリックし、CMake バイナリへのパスを追加します。例:

C:\Program Files\CMake\bin

Program Files に CMake をインストールしている場合。

警告

変更を有効にするには、Windows アカウントからサインアウトし、再度サインインする必要がある場合があります。

生成された Visual Studio ソリューション ZividCppSamples.sln をファイル エクスプローラーで開き、サンプルをさらにビルドします。

CMake GUI を開き、ビルド フォルダーのソース フォルダーと出力先を選択します。

Zivid C++ サンプルの構成を含む CMake GUI のスクリーンショット。

Configure をクリックします。プロジェクトのジェネレーターを指定し、(オプションの) プラットフォームが x64 であることを確認します。 Finish をクリックします。

ジェネレーターを指定した CMake GUI のスクリーンショット。

もう一度 Configure をクリックします。

依存関係エラーのある CMake GUI のスクリーンショット。

CMake エラーで OK をクリックし、変数 USE_EIGEN3USE_OPENCV および USE_PCL を無効にして、これらの依存関係なしでソリューションを構成します。

依存関係を構成できる CMake GUI のスクリーンショット。

最後に Configure をもう一度クリックし、 GenerateOpen Project をクリックして Visual Studio ソリューションを開きます。

ソリューションをビルドする

Visual Studio で、ビルド構成を Debug から Release に変更してください。Debug ビルドではコンパイラの最適化が無効になり、パフォーマンスが著しく低下するため、ベンチマークや本番環境での使用には適していません。

Ctrl + Shift + B を押してソリューションをビルドします。

C++ サンプルの Visual Studio ビルド イベントのスクリーンショット。

サンプルプログラムを実行する

Release フォルダーに移動し、ファイル エクスプローラーで exe をダブルクリックするか、コマンド プロンプトを使用してサンプル プログラムを実行します。例:

.\CaptureVis3D.exe
CaptureVis3D サンプルのスクリーンショット。

サンプルデータを必要とするサンプルの実行

一部のサンプルでは、点群、ファイルカメラ、変換など、実行に追加データが必要です。ダウンロードとインストールの方法については サンプルデータ を参照してください。

オプションの依存関係を使用したサンプルの構成

一部のサンプルは Point Cloud LibraryEigenOpenCV 、および/または 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

CMake GUI で、 Add Entry をクリックして Eigen へのパスを追加します。 EIGEN3_INCLUDE_DIR を追加し、フォルダーを展開した場所を値に指定します。

Eigen 3 のインクルードディレクトリを入力できる CMake GUI のスクリーンショット。

USE_EIGEN3 チェックボックスがオンになっていることを確認し、 Configure をクリックします。次に Generate および Open Project をクリックして、Visual Studio ソリューションを開きます。

https://github.com/PointCloudLibrary/pcl/releases.exe を選択して、ビルド済みの PCL バイナリをダウンロードしてインストールします。サードパーティライブラリをインストールするオプションをオンにします。

Windows 上の PCL インストールウィザードのスクリーンショット。

Zivid PCL コードサンプルを構成する前に、いくつかの設定を PATH システム変数に含める必要があります。PC で、 Control PanelSystem and SecuritySystemAdvanced System SettingsEnvironment Variables に移動します。システム変数 で、 Path 変数を選択し、 Edit をクリックします。

Windows のシステム情報のスクリーンショット。

Edit environment variable ウィンドウで New をクリックし、PCL バイナリと OpenNI2 (サードパーティライブラリ) へのパスを追加します。例:

C:\Program Files\PCL 1.12.1\bin
C:\Program Files\OpenNI2\Tools

PCL 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 へのパスはすでに構成されているはずです。

zivid-cpp-samples で作成したビルドディレクトリに移動して、次のコマンドを実行します。

cmake -DUSE_PCL=ON -DUSE_EIGEN3=OFF -DUSE_OPENCV=OFF ../source

CMake GUI で、 USE_PCL チェックボックスがオンになっていることを確認し、 Configure をクリックします。

../../../../_images/cmake_gui_screenshot_add_pcl.png

Generate および Open Project をクリックして、Visual Studio ソリューションを開きます。

https://opencv.org/releases/ から事前にビルドされた OpenCV バイナリをダウンロードしてインストールします。希望の場所に展開します。例:

C:\Users\Public

Zivid OpenCV コードサンプルを構成する前に、いくつかの設定を PATH システム変数に含める必要があります。PC で、 Control PanelSystem and SecuritySystemAdvanced System SettingsEnvironment Variables に移動します。システム変数 で、 Path 変数を選択し、 Edit をクリックします。

Windows のシステム情報のスクリーンショット。

Edit environment variable ウィンドウで New をクリックし、OpenCV バイナリへのパスを追加します。例:

C:\Program Files\opencv\build\x64\vc16\bin

OpenCV 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

CMake GUI で、 Add Entry をクリックして OpenCV へのパスを追加します。 OpenCV_DIR を追加し、その値が OpenCV ビルドフォルダーを指すようにします。

OpenCV インクルードディレクトリを入力できる CMake GUI のスクリーンショット。

USE_OPENCV チェックボックスがオンになっていることを確認し、 Configure をクリックします。次に、 GenerateOpen Project をクリックして、Visual Studio ソリューションを開きます。

Halcon C++ サンプルを実行するには、PC に Halcon がインストールされている必要があります。詳細な手順については Windows 用 Zivid + HALCON をインストールする を参照してください。

Halcon をインストールした後、Halcon サンプルを使用するように CMake を構成します。

zivid-cpp-samples で作成したビルドディレクトリに移動して、次のコマンドを実行します。

cmake -DUSE_HALCON=ON -DUSE_EIGEN3=OFF -DUSE_OPENCV=OFF -DUSE_PCL=OFF ../source

USE_HALCON チェックボックスがオンになっていることを確認し、 Configure をクリックします。

../../../../_images/cmake_gui_screenshot_add_halcon.png

次に Generate および Open Project をクリックして、Visual Studio ソリューションを開きます。

複数の依存関係を一度に構成したい場合は、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 PanelSystem and SecuritySystemAdvanced System SettingsEnvironment Variables に移動します。

Windows のシステム情報のスクリーンショット。

システム変数 で、 Path 変数を選択し、 Edit をクリックします。

Windows のシステム情報のスクリーンショット。

Environment variables ウィンドウで、 New (ウィンドウの右上隅、ユーザー変数のセクション内) をクリックし、次の値を追加します。

C:\Program Files\Zivid\bin_debug
:code:`C:\\Program Files\\Zivid\\bin_debug` パスを PATH 変数に追加する方法を示すスクリーンショット。

注釈

入力ファイルに依存するプログラムをデバッグする場合は、作業ディレクトリを ${TargetDir} に変更する必要があります。

Visual Studio でデバッグ用の作業ディレクトリを設定する方法を示す GIF 。

ビルド構成を Release から Debug に変更します。次に F5 をクリックしてデバッグ付きでビルドおよび実行します。

バージョン履歴

SDK

変更点

2.17.0

非構造化点群の可視化に対するネイティブサポートが追加されたため、Open3D への依存関係を削除しました。

2.16.0

Ubuntu 上でオプションの依存関係を持つ C++ サンプルを設定する手順を追加しました。Ubuntu と Windows の両方で Open3D を設定する手順を追加しました。