OpenCV 4 Programs

Stereo Vision Project Update for OpenCV4 & MSVC 2019

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」をクリックします。

Re-target Project Platform

プロジェクトの再ターゲットはメインメニューのプロジェクトからの選択も出来ます。

Property Modification

プロパティーの更新は、「Debug」「Relaese」モードの両方で、インクルードディレクトリとライブラリーフォルダーとライブラリーファイルの3項目のアップデートによって行います。メインメニューのプロジェクトからプロパティを選択して、各項目を編集します。OpenCV 4.5.0のプロパティー更新に必要なファイルは「install」フォルダー内に集約されています。

Project Property Page

Include Directory

C/C++項目から全般を選択して追加のインストールディレクトリを編集します。

通常、OpenCVのヘッダーファイルのインクルード記述では「#include “opencv2/(filename.h/hpp)”」と記載されていることが多くある為、フォルダー名を「(opencv-4.5.0 directory)\build\install\include」としました。

Project Property / Include Directory Menu
Project Property / Include Directory

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」に在ります。これらを入力しておけば問題無いでしょう。

Project Property / Library Directory Menu
Project Property / Library Directory

Library Files

リンカー項目から入力を選択して追加の依存ファイルを編集します。

以前にOpenCV 3.2.0を使用しており、OpenCV 4.5.0に更新していますので、それに合わせてファイル名を編集しました。上記フォルダー内のファイル名を入力していれば、問題ありません。

Project Property / Library Menu
Project Property / Library

Program Error Correction

プロジェクト プロパティを訂正して、プログラムのビルドを実行してみても、なかなか、上手く完了しません。ここでは、そのエラーの原因を見つけて、修正しました。

Compile & Find Errors

プロジェクト プロパティの編集を終えたところで、一度ソリューションのリビルドを行ってみますと、エラーが発生します。

Project Compile & Build
Project Compile Error

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

訂正完了後に再度ビルドします。ビルドに成功していれば、プログラムを実行して、試運転してみましょう。

Rebuild Project

Test Run of Stereo Vision Program

プログラムの試運転はカメラを校正して、3D画像を表示する事で動作確認をしました。プログラムの操作方法は 「Stereo 3D Display Program with OpenCV」で紹介しています。

Test Run of Stereo Vision Program

ターゲットには、OpenCV 3 Project の時と変わらず、Chessboard Patternを使っています。

Stereo Calibration with Chessboard Pattern

Stereo 3D Display with Post-Filter を使った3D画像の表示に成功すると、アップデート完了です。

Test Run of Stereo Vision Program Completed

Conclusion

如何でしたか。本稿では、OpenCV 3 で作成した Stereo Vision Project を OpenCV 4 で使用する様に更新しました。最後までお読みいただき、ありがとうございました。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です