Introduction
本稿では、OpenCV 3 で作成した Stereo Vision Project を OpenCV 4 で使用する為、以下の手順で更新します。
- Project Property Update
- Program Error Correction
- Test Run of Stereo Vision Program
それでは、参りましょう。
Project Property Update
ここでは、プロジェクトのプロパティーを更新します。
Open the project created @ Stereo 3D Display Program with OpenCV
先ず、「Stereo 3D Display Program with OpenCV」で作成したプロジェクトを開きますと、プロジェクトの再ターゲットが要求されます。
Re-target Project Platform
Windows SDK バージョンとプラットフォームツールセットのアップグレードを要求されますので、そのまま、最新の選択を受入れて「OK」をクリックします。
プロジェクトの再ターゲットはメインメニューのプロジェクトからの選択も出来ます。
Property Modification
プロパティーの更新は、「Debug」「Relaese」モードの両方で、インクルードディレクトリとライブラリーフォルダーとライブラリーファイルの3項目のアップデートによって行います。メインメニューのプロジェクトからプロパティを選択して、各項目を編集します。OpenCV 4.5.0のプロパティー更新に必要なファイルは「install」フォルダー内に集約されています。
Include Directory
C/C++項目から全般を選択して追加のインストールディレクトリを編集します。
通常、OpenCVのヘッダーファイルのインクルード記述では「#include “opencv2/(filename.h/hpp)”」と記載されていることが多くある為、フォルダー名を「(opencv-4.5.0 directory)\build\install\include」としました。
Library Directory
リンカー項目から全般を選択して追加のライブラリディレクトリを編集します。
OpenCV 4 Library 作成の際に、Visual C++の構成マネージャーから「INSTALL」を選択していますので、「Debug」「Relaese」モード共にライブラリーは「(opencv-4.5.0 directory)\build\install\x64\vc16\lib」に存在します。VTK Libraryは「(VTK install directory)\lib」に在ります。これらを入力しておけば問題無いでしょう。
Library Files
リンカー項目から入力を選択して追加の依存ファイルを編集します。
以前にOpenCV 3.2.0を使用しており、OpenCV 4.5.0に更新していますので、それに合わせてファイル名を編集しました。上記フォルダー内のファイル名を入力していれば、問題ありません。
Program Error Correction
プロジェクト プロパティを訂正して、プログラムのビルドを実行してみても、なかなか、上手く完了しません。ここでは、そのエラーの原因を見つけて、修正しました。
Compile & Find Errors
プロジェクト プロパティの編集を終えたところで、一度ソリューションのリビルドを行ってみますと、エラーが発生します。
List of Errors
上記のエラーはOpenCV 3.2.0 から OpenCV 4.5.0 に移行する過程で識別子名が変更されていることが原因の様です。ひとつひとつ確認して、訂正しましょう。
-Undefined Identifier (定義されていない識別子) CV_CALIB_FIX_PRINCIPAL_POINT shall be changed to -> CALIB_FIX_PRINCIPAL_POINT CV_CALIB_ZERO_TANGENT_DIST shall be changed to -> CALIB_ZERO_TANGENT_DIST CV_CALIB_FIX_ASPECT_RATIO shall be changed to -> CALIB_FIX_ASPECT_RATIO CV_LOAD_IMAGE_COLOR shall be changed to -> IMREAD_COLOR CV_CALIB_CB_ADAPTIVE_THRESH shall be changed to -> CALIB_CB_ADAPTIVE_THRESH CV_CALIB_CB_FAST_CHECK shall be changed to -> CALIB_CB_FAST_CHECK CV_CALIB_CB_NORMALIZE_IMAGE shall be changed to -> CALIB_CB_NORMALIZE_IMAGE CV_BGR2GRAY shall be changed to -> COLOR_BGR2GRAY CV_TERMCRIT_EPS + CV_TERMCRIT_ITER shall be changed to -> TermCriteria::COUNT + TermCriteria::EPS CV_L2 shall be changed to -> NORM_L2 CV_CALIB_FIX_K4 shall be changed to -> CALIB_FIX_K4 CV_CALIB_FIX_K5 shall be changed to -> CALIB_FIX_K5 CV_STEREO_BM_BASIC Change whole line to -> Ptr<StereoSGBM> sgbm = StereoSGBM::create(5, 256, 4, -64, 1, 150, 2, 10, false, 600, 2400) (note: please examine the function parameters by yourself.) -Other Operand (*) and Undefined Identifier 'cvWriteComment' (間接指定演算子 (*) と 識別子 'cvWriteComment') shall be modified as -> Comment out whole line.
Rebuild
訂正完了後に再度ビルドします。ビルドに成功していれば、プログラムを実行して、試運転してみましょう。
Test Run of Stereo Vision Program
プログラムの試運転はカメラを校正して、3D画像を表示する事で動作確認をしました。プログラムの操作方法は 「Stereo 3D Display Program with OpenCV」で紹介しています。
ターゲットには、OpenCV 3 Project の時と変わらず、Chessboard Patternを使っています。
Stereo 3D Display with Post-Filter を使った3D画像の表示に成功すると、アップデート完了です。
Conclusion
如何でしたか。本稿では、OpenCV 3 で作成した Stereo Vision Project を OpenCV 4 で使用する様に更新しました。最後までお読みいただき、ありがとうございました。