オブジェクト検出用コ,ドの生成
この例では、图像处理工具箱™の関数を使用するMATLABアプリケーションからMATLAB®编码器™を使用してCコードを生成する方法を説明します。この例では,MATLAB環境を設定し,コード生成用のMATLABコードを準備する方法を説明します。
また,MATLABコードで発生する可能性のある,コード生成の妨げとなる問題の解決方法も説明します。プロセスを説明するため,この例で使用するコードには,コードの生成前に解決しなければならない準備の問題とビルドの問題が含まれています。
コンパ@ @ラの設定
MATLAB编码器で使用するC/ c++コンパラを指定し,関数墨西哥人
を设置
オプション付きで使用してコ,ドを生成します。
墨西哥人设置
エントリポ@ @ント関数の定義
エントリポント関数は,コド生成のソスコドとして使用するmatlab関数です。まず,コド生成のサポトなしでメジ処理ワクフロのプロトタプを作成します。この例では,セグメンテ,ションおよびモルフォロジ,技術を使用して細胞検出を実行する,detectCells.m
という関数を定義します。この関数は,この例にサポ,トファ,ルとして添付されています。
サンプル▪▪メ▪▪ジcell.tif
を使用してコ,ド例をテストします。
I = imread(“cell.tif”);Iseg = detectCells(I);
元の。
Iseg imshow (labeloverlay(我))
コ,ド生成用にこのコ,ドを変更するため,コ,ドのコピ,を使用して作業をすることをお勧めします。この例には,detectCellsCodeGen.m
という名前の,補助関数detectCells.m
のコピ,が含まれています。コ,ド生成に使用するバージョンの関数には、関数シグネチャの最後に MATLAB Coder コンパイル命令% # codegen
が含まれています。この命令は,MATLABコードアナライザーに対して,コード生成の妨げとなる問題を診断するように指示します。
関数编码器
を使用してMATLAB编码器アプリを開きます(あるいは,MATLABで[アプリ]タブを選択し,[コード生成]に移動してMATLAB编码器アプリをクリックします)。
编码器
エントリポ@ @ント関数の名前detectCellsCodeGen
を指定し,输入を押します。
コ,ド生成のためのコ,ド準備状態の特定
[次へ]をクリックします。MATLABCoder により、コード生成の妨げとなる可能性のある問題が特定されます。このコードの例には 5 つのサポートされていない関数呼び出しがあります。
準備状態の問題を確認します。[問題の確認]をクリックします。レポ,トでは,編集ウィンドウにコ,ドが表示され,その下側にコ,ド生成をサポ,トしていない関数imshow
の使用を警告する準備状態の問題のリストが示されます。
準備状態の問題の修正
準備状態の問題を解決します。この例からimshow
の呼び出しと関連する表示コ,ドを削除します。表示のステ,トメントはセグメンテ,ションの演算には必要ありません。MATLAB编码器でこのコ,ド例を直接編集できます。コ,ドを削除したら,[保存]をクリックして編集を保存し,準備状態のチェックを再実行します。準備状態のチェックを再実行すると,MATLAB编码器が“問題は見かりません”というメッセ,ジを表示します。
関数入力のサ▪▪ズとデ▪▪タ型の定義
コドへの入力はすべて,固定サズ,可変サズまたは定数になるように指定しなければなりません。入力引数のサイズの指定方法は複数ありますが,最も簡単な方法は関数呼び出しの例をMATLAB编码器に指定することです。関数を呼び出すスクリプトをテキスト入力フィ,ルドに入力します。この例では,matlabプロンプトで次のコ,ドを入力して[入力の型の自動定義]を押します。
I = imread(“cell.tif”);Iseg = detectCellsCodeGen(I);
入力の定義の詳細にいては,MATLAB编码器のドキュメンテションを参照してください。MATLAB编码器が入力タaaplプの定義を返したら,[次へ]をクリックします。
実行時の問題のチェックと解決
MATLAB编码器の準備状態チェックを実行していても,コード生成の妨げとなるその他の問題がビルド処理の際に発生する場合があります。準備状態チェックでは関数の依存関係によって準備状態が特定されますが,ビルド処理ではコーディングパターンが検証されます。入力タイプの定義で入力したのと同じコードを使用できます(ダイアログボックスに事前に読み込まれています)。[問題の確認]をクリックします。
この例には次のビルドの問題が含まれています。すなわ,strel
オブジェクトの配列をimdilate
に渡していますが,オブジェクトの配列はコ,ド生成でサポ,トされていないのです。
特定されたビルドの問題を解決します。この例では,strel
オブジェクトの配列を渡さないように,imdilate
の呼び出しを変更します。imdilate
に対する1の呼び出しを,imdilate
に対する2の別々の呼び出しに置き換えます。この場合,それぞれの呼び出しで1のstrelオブジェクトを渡します。
テスト用のビルドを再実行し,変更によって問題が解決したことを確認します。[問題の確認]をクリックします。MATLABCoder は問題が検出されないことを示すメッセージを表示します。
コ,ドの生成
これでコ,ド生成の準備ができました。[次へ]をクリックします。
生成するコ,ドの種類を選択し,タ,ゲットプラットフォ,ムを選択します。MATLAB编码器は C または C++ ソース コード、MEX ファイル、スタティック ライブラリ、共有ライブラリまたはスタンドアロンの実行可能ファイルを生成できます。[製品ハードウェア] は、ARM や Intel プロセッサを含む多くの選択肢から選択できます。
この例では,既定のオプションを使用します。ビルドタプは[ソスコド],言語は[C]です。デバイスオプションについては,デバイスベンダーの一般デバイス,デバイスタイプには[MATLAB主机]を指定します。[MATLAB主机]を選択した場合, MATLAB编码器はプリコンパ@ @ルされた共有ラ@ @ブラリに依存するコ@ @ドを生成します。图像处理工具箱関数は、共有ライブラリを使用して最適なパフォーマンスを維持しています。
[生成]をクリックします。
生成されたコ,ドが表示されます。
[次へ]をクリックして処理を完了します。MATLAB编码器は生成内容についての情報を表示します。MATLAB Coder の既定の設定では、生成された出力を格納するcodegen
サブフォルダ,が作業フォルダ,に作成されます。
参考
codegen
(MATLAB编码器)|MATLAB编码器(MATLAB编码器)
関連するトピック
- イメージ処理のコード生成
- コド生成のワクフロ(MATLAB编码器)
- MATLAB编码器アプリを使用したCコ,ドの生成(MATLAB编码器)
- コ,ド生成用の入力の型の指定(MATLAB编码器)
- コ,ド生成をサポ,トする関数