ドキュメンテーション

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

イメージ内のオブジェクト数のカウント

この例では、MATLAB® ワークスペースから車輪の強度イメージをインポートしてバイナリに変換します。その後、Opening ブロックと Label ブロックを使用して、車輪のスポークの数をカウントします。その他の強度イメージ内のオブジェクトをカウントする場合にも、同様の手法を使用できます。ただし、追加のモルフォロジー演算や異なる構造化要素の使用が必要な場合もあります。

    メモ:   この例の実行には DSP System Toolbox ™ のライセンスが必要です。

以下を入力して、モデル例を開きます。

入力は MATLAB コマンド ラインで行います。

  1. 新しい Simulink® モデルを作成し、次の表に示されているブロックに追加します。

    ブロック

    ライブラリ

    Image From File

    [Computer Vision System Toolbox™]、[Sources]

    1

    Opening

    [Computer Vision System Toolbox]、[Morphological Operations]

    1

    Label

    [Computer Vision System Toolbox]、[Morphological Operations]

    1

    Video Viewer

    [Computer Vision System Toolbox]、[Sinks]

    2

    Constant

    [Simulink]、[Sources]

    1

    Relational Operator

    [Simulink]、[Logic and Bit Operations]

    1

    Display

    [Simulink]、[Sinks]

    1

  2. Image From File ブロックを使用してイメージをインポートします。[File name] パラメーターを testpat1.png に設定します。これは 256 行 256 列の 8 ビット符号なし整数値の行列イメージです。

  3. Constant ブロックを使用して、Relational Operator ブロックのしきい値を定義します。[定数値] パラメーターを 200 に設定します。

  4. Video Viewer ブロックを使用して元のイメージを表示します。既定のパラメーターを受け入れます。

  5. Relational Operator ブロックを使用して、しきい値演算を実行し、強度イメージをバイナリ イメージに変換します。[関係演算子] パラメーターを < に設定します。

    Relational Operator ブロックへの入力が 200 未満の場合は 1、それ以外の場合は 0 が出力されます。Label ブロックにはバイナリ入力が必要なため、強度イメージにしきい値を適用しなければなりません。また、カウント対象のオブジェクトは白でなければなりません。

  6. Opening ブロックを使用して、スポークを車輪の縁や中心部にある他のスポークから分離します。既定のパラメーターを使用します。

    strel クラスは、半径が 5 ピクセルの円形の STREL オブジェクトを作成します。Opening ブロックを使用する際は、保持するオブジェクト内に収まる STREL オブジェクトを選択してください。アプリケーションに最も適した近傍または STREL オブジェクトを見つけるには実験が必要な場合も多くあります。

  7. Video Viewer1 ブロックを使用して、開いたイメージを表示します。既定のパラメーターを受け入れます。

  8. Label ブロックを使用して、入力イメージ内のスポークの数をカウントします。[Output] パラメーターを Number of labels に設定します。

  9. Display ブロックを使用して、入力イメージ内のスポークの数を表示します。既定のパラメーターを使用します。

  10. ブロックを次の図のように接続します。

  11. コンフィギュレーション パラメーターを設定します。[コンフィギュレーション] ダイアログ ボックスを開くには、[シミュレーション] メニューから [モデル コンフィギュレーション パラメーター] を選択します。パラメーターを以下のように設定します。

    • [ソルバー] ペインの [終了時間] = 0

    • [ソルバー] ペインの [タイプ] = [固定ステップ]

    • [ソルバー] ペインの [ソルバー] = [離散 (連続状態なし)]

  12. モデルを実行します。

    [Video Viewer1] ウィンドウに元のイメージが表示されます。イメージを真のサイズで表示するには、ウィンドウを右クリックして [Set Display To True Size] を選択します。

    開いたイメージは [Video Viewer] ウィンドウに表示されます。次のイメージは真のサイズで表示されています。

    前の図からわかるように、各スポークが白いオブジェクトとして分離されています。モデルには Display ブロックによって 24 個の異なるスポークが存在することが正しく示されます。

ここでは Opening ブロックと Label ブロックを使用してイメージ内のスポークの数をカウントしました。これらのブロックについての詳細は、『Computer Vision System Toolbox Reference』の Opening ブロックおよび Label ブロックのリファレンス ページを参照してください。スポークの数を MATLAB ワークスペースに送信するには、Simulink で To Workspace ブロックを使用します。STREL オブジェクトの詳細については、Image Processing Toolbox™ ドキュメンテーションの strel を参照してください。

この情報は役に立ちましたか?