このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
OpenCV Importer を使用した RGB イメージのグレースケール イメージへの変換
この例では、"OpenCV Importer" アプリを使用して RGB イメージをグレースケール イメージに変換する方法を説明します。このコンバーターは、色相と彩度の情報を削除し、輝度は維持することで、RGB イメージをグレースケール イメージに変換します。
最初に、Computer Vision Toolbox Interface for OpenCV in Simulink のインストールと使用を使用して、OpenCV 関数を Simulink にインポートします。アプリは、指定した OpenCV 関数のサブシステムと C Caller ブロックを含む Simulink ライブラリを作成します。事前構成済みの Simulink モデルでこのサブシステムを使用して、変換を行う RGB イメージを受け取ります。
次の方法を学びます。
OpenCV 関数を Simulink ライブラリにインポートする。
生成されたライブラリのブロックを Simulink モデルで使用する。
C++ コンパイラの設定
OpenCV ライブラリを構築するために、OpenCV ライブラリを使用する関数に対応する移植可能な C コードの生成の記載に従い、お使いのオペレーティング システムと互換性のある C++ コンパイラを特定します。mex -setup c++
コマンドを使用して、特定したコンパイラを構成します。詳細については、C++ コンパイラの選択を参照してください。
モデルの説明
この例では、Simulink モデル ToGrayScale.slx
を使用します。
このモデルでは、subsystem_slwrap_toGrayScale
サブシステムが RGBtoGRAY_Lib
ライブラリ内にあります。OpenCV Importer を使用して、subsystem_slwrap_toGrayScale
サブシステムを作成します。このサブシステムが RGB イメージを Image From File ブロックから受け取り、グレースケールの出力イメージに変換します。そして、出力が Video Viewer ブロックに表示されます。
サンプル フォルダーの書き込み可能な場所へのコピー
サンプル フォルダーのパスにアクセスするには、MATLAB® コマンド ラインで以下のように入力します。
OpenCVSimulinkExamples;
各サブフォルダーには、例を実行するために必要なサポート ファイルがすべて含まれています。
以下の手順に進む前に、サンプル フォルダーを書き込み可能なフォルダーの場所にコピーし、現在の作業フォルダーを ...example\ImageRGBtoGray
に変更します。出力ファイルはすべて、このフォルダーに保存されます。
手順 1: OpenCV 関数のインポートによる Simulink ライブラリの作成
1."OpenCV Importer" アプリを起動するには、MATLAB ツールストリップの [アプリ] をクリックします。[Welcome] ページで [Project name] を RGBtoGRAY
と指定します。プロジェクト名にスペースが含まれていないことを確認してください。[Next] をクリックします。
2.[Specify OpenCV Library] で以下のファイルの場所を指定し、[Next] をクリックします。
Project root folder: サンプル フォルダーのパスを指定します。このパスは、サンプル ファイルを保存した書き込み可能なプロジェクト フォルダーのパスです。出力ファイルはすべて、このフォルダーに保存されます。
Source files: プロジェクト フォルダー内にある
.cpp
ファイルのパスとしてtoGrayScale.cpp
と指定します。Include files: プロジェクト フォルダー内にある
.hpp
ヘッダー ファイルのパスとしてtoGrayScale.hpp
と指定します。
3.ライブラリを解析して、インポートする関数と型を特定します。解析が完了したら、[Next] をクリックします。関数 toGrayScale
を選択し、[Next] をクリックします。
4.[What to import] で、img
の [I/O Type] に [InputOutput]
を選択し、[Next] をクリックします。
5.[Create Simulink Library] で、OpenCV の型の既定値を設定します。既定では、[Create a single C-caller block for the OpenCV function] が選択されており、生成された Simulink ライブラリに C Caller ブロックとサブシステムが作成されます。
6.[Configure library to use Simulink.ImageType signals] を選択して、生成されたライブラリ サブシステムを Simulink.ImageType
シグナルを使用するように構成します。
7.[Default Color Format of Simlink.ImageType signal] をイメージの既定の色形式である RGB
に設定します。
8.[Default Array layout of Simulink.ImageType signal] をイメージの既定の配列レイアウトである Column-major
に設定します。
9.[Next] をクリックして Simulink ライブラリを作成します。
OpenCV コードを基に、Simulink ライブラリ RGBtoGRAY_Lib
がプロジェクトのルート フォルダーに作成されます。このライブラリには、サブシステムと C Caller ブロックが含まれます。どのブロックでも、モデル シミュレーションに使用できます。この例では、サブシステム subsystem_slwrap_toGrayScale
を使用します。
手順 2: 生成されたサブシステムの Simulink モデルでの使用
生成されたサブシステム subsystem_slwrap_toGrayScale
を Simulink モデル ToGrayScale.slx
で使用するために、次を行います。
1.MATLAB の現在のフォルダーにあるモデル ToGrayScale.slx
を右クリックし、コンテキスト メニューから [開く] をクリックします。生成されたサブシステムをライブラリからモデルにドラッグします。From Multimedia File ブロックと Video Viewer ブロックの間にサブシステムを挿入します。
2.サブシステムをダブルクリックし、次のパラメーター値を設定します。
Rows:
480
Columns:
640
Channels:
1
Underlying Type:
uint8
3.[適用] をクリックし、[OK] をクリックします。
手順 3: RGB からグレースケールへの変換のシミュレーション
Simulink ツールストリップの [シミュレーション] タブで [実行] をクリックして、モデルのシミュレーションを行います。シミュレーションの完了後、Video Viewer ブロックには、入力イメージ peppers.png
のグレースケール イメージが表示されます。
参考
ToOpenCV | FromOpenCV | Simulink.ImageType