最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Computer Vision System Toolbox OpenCV インターフェイスのインストールと使用

OpenCV インターフェイス ファイルを使用して OpenCV C++ コードを MATLAB® に統合し、OpenCV 関数を呼び出す MEX ファイルをビルドします。サポート パッケージにはグラフィックス処理装置 (GPU) のサポートも含まれます。

インストール

サードパーティ サポート ファイルをインストールすると、Computer Vision System Toolbox™ 製品でそのデータを使用できるようになります。次のいずれかの方法で、アドオン サポート ファイルをインストールします。

  • MATLAB デスクトップの [アドオン] ドロップダウン メニューで [アドオンの入手] を選択する。アドオン ファイルは "MathWorks 機能" セクションにあります。

  • MATLAB コマンド ウィンドウに「visionSupportPackages」と入力し、指示に従う。

メモ

インストール フォルダーへの書き込み権限が必要です。

MATLAB ソフトウェアの新しいバージョンがリリースされている場合、この手順を繰り返して更新を確認します。更新の確認はリリース間でも行えます。

サポート パッケージの内容

OpenCV インターフェイス サポート ファイルは visionopencv フォルダーにインストールされます。このフォルダーのパスを見つけるには、次のコマンドを入力します。

fileparts(which('mexOpenCV')) 
visionopencv フォルダーには以下のファイルとフォルダーが含まれています。

ファイル内容
example フォルダーテンプレート マッチング、前景検出器、Oriented FAST and Rotated BRIEF (ORB) の例 (GPU バージョンを含む)。example フォルダー内の各サブフォルダーには、詳しい手順を示す README.txt ファイルが含まれています。
registry フォルダーレジストレーション ファイル。
mexOpenCV.m ファイルMEX ファイルをビルドするための関数。
README.txt ファイルヘルプ ファイル。

関数 mex はプリビルドされた OpenCV ライブラリを使用します。このライブラリは Computer Vision System Toolbox 製品に付属しています。使用するコンパイラはライブラリのビルドに使用したコンパイラと互換性がなければなりません。MATLAB ホストの OpenCV ライブラリのビルドに使用されるコンパイラは次のとおりです。

オペレーティング システム互換コンパイラ
Windows® 64 ビットMicrosoft® Visual Studio® 2015 Professional または Visual Studio 2017
Linux® 64 ビットgcc-4.9.3 (g++)
Mac 64 ビットXcode 6.2.0 (Clang++)

OpenCV C++ ファイルからの MEX ファイルの作成

この例では、ラッパー C++ ファイルから MEX ファイルを新しく作成し、そのファイルをテストします。ここでは C++ ファイルにラップされている OpenCV テンプレート マッチング アルゴリズムを使用します。このファイルは example/TemplateMatching フォルダーに入っています。

  1. 現在の作業フォルダーを example/TemplateMatching フォルダーに変更します。

    cd(fullfile(fileparts(which('mexOpenCV')),'example',filesep,'TemplateMatching'))

  2. ソース ファイルから MEX ファイルを作成します。

    mexOpenCV matchTemplateOCV.cpp

  3. 生成された MEX ファイルを使用するテスト スクリプトを実行します。

    testMatchTemplate

OpenCV インターフェイス C++ API の使用

mexOpenCV インターフェイス ユーティリティ関数は、データを OpenCV と MATLAB 間で変換します。これらの関数は CPP リンケージのみをサポートしています。glnxa64、win64 および Mac プラットフォームでは GPU がサポートされます。GPU 固有のユーティリティ関数は、Compute Capability 2.0 以上の CUDA 対応 NVIDIA GPU をサポートします。Parallel Computing Toolbox™ のシステム要件を参照してください。GPU ユーティリティ関数には Parallel Computing Toolbox ソフトウェアが必要です。

関数説明
ocvCheckFeaturePointsStruct

MATLAB 構造体が特徴点を表すかどうかをチェック

ocvStructToKeyPoints

MATLAB 特徴点構造体を OpenCV KeyPoint ベクトルに変換

ocvKeyPointsToStruct

OpenCV KeyPoint ベクトルを MATLAB 構造体に変換

ocvMxArrayToCvRect

四角形を表す MATLAB 構造体を OpenCV CvRect に変換

ocvCvRectToMxArray

OpenCV CvRect を MATLAB 構造体に変換

ocvCvBox2DToMxArray

OpenCV CvBox2D を MATLAB 構造体に変換

ocvCvRectToBoundingBox_{DataType}

vector<cv::Rect> を M 行 4 列の境界ボックスからなる mxArray に変換

ocvMxArrayToSize_{DataType}

2 要素 mxArraycv::Size に変換

ocvMxArrayToImage_{DataType}

列優先の mxArray を行優先のイメージ用 cv::Mat に変換

ocvMxArrayToMat_{DataType}列優先の mxArray を行優先の汎用行列用 cv::Mat に変換
ocvMxArrayFromImage_{DataType}

行優先の cv::Mat を列優先のイメージ用 mxArray に変換

ocvMxArrayFromMat_{DataType}行優先の cv::Mat を列優先の汎用行列用 mxArray に変換
ocvMxArrayFromVector

数値 vectorTmxArray に変換

ocvMxArrayFromPoints2f

vector<cv::Point2f>mxArray に変換

GPU 関数説明
ocvMxGpuArrayToGpuMat_{DataType}

gpuArray から cv::gpu::GpuMat を作成

ocvMxGpuArrayFromGpuMat_{DataType}

cv::gpu::GpuMat から gpuArray を作成

独自の OpenCV MEX ファイルの作成

ソース ファイルを指定して関数 mxArray を呼び出します。

mexOpenCV yourfile.cpp

MEX ファイルの作成手順のヘルプは MATLAB コマンド プロンプトで以下を入力してください。

help mexOpenCV

OpenCV 例の実行

OpenCV インターフェイス サポート パッケージ内の各例のサブフォルダーには、その例の実行に必要なすべてのファイルが含まれています。例を実行するには、提供されているソース ファイルのいずれかを指定して関数 mexOpenCV を呼び出さなければなりません。

 テンプレート マッチングの例の実行

 前景検出器の例の実行

 Oriented FAST and Rotated BRIEF (ORB) 検出器の例の実行

 ORB 特徴の検出 (GPU バージョン) の例の実行

参考

|

関連するトピック