Color Tracker for MATLAB/Simulink

はじめに

2013年11月17日に新潟大学で開催された第56回自動制御連合講演会の教員協議会の講演で紹介したColor Tracker(画像上の特定の色を追跡してその座標を返すプログラム)を公開します。

&ref(): File not found: "color_tracker_b03.zip" at page "ColorTracker";

フリーで公開すると言っておきながら,時間がかなり経過してしまったので,大幅にバージョンアップしました。変更点は下記の通り。

テスト環境

実行手順

  1. color_tracker_b03.pdeをProcessingで開いて実行します。
  2. Webカメラの画像が表示されない場合は setup() 冒頭の「カメラ設定」部分を各自の環境に合わせて修正してください。
  3. Webカメラの画像で,認識させたい対象物をマウスでクリックします。クリックした場所と同一の色を持つ部分の重心が計算されて,赤い●で示されます。
  4. 「同一の色を持つ部分」を確認したい場合は,キーボードの"d"を押します。"d"を押すごとに,Webカメラの画像と「同一の色を持つ部分」の画像が切り替わります。
  5. 「同一の色を持つ部分」を決めるための閾値がキーボードの"j"と"k"で変更できます。閾値の値は,画面左上の■の右隣に表示されています。"j"で閾値が小さくなり,「同一の色を持つ部分」の領域が狭くなります。"k"はその逆です。
  6. MATLAB/Simulink R2012a を起動し soctest.m を実行します。コンソールに下記のような数値が100行ほど表示されたら,ProcessingとMATLAB/Simulinkの通信は正常です。なお,soctest.mはいつも実行する必要はありません。動作確認に使用してください。
    10b0,1650,1
    10b0,1660,1
    10b0,1660,1
    10b0,1650,1
    10b0,1650,1
    10b0,1650,1
    10b0,1650,1
  7. 最後に vision_test.mdl を開いて実行します。赤い●のXY座標と,対象物認識の有無,XY平面の軌跡が30秒間表示されます。

実行の様子

color_tracker_small.png

注意事項

  1. vision_test.mdl はサンプリング周期で同期を取る機能はありません。ArduinoIOに含まれている"msfun_realtime_pacer(block)"などを使えば,サンプリング周期に同期させて動作させることが可能かもしれません。
    参考)
    http://www.mathworks.com/matlabcentral/fileexchange/32374-matlab-support-package-for-arduino--aka-arduinoio-package-
  2. エラー処理などはあまり考えていません。必要に応じて付け加えてください。
  3. Macでの動作は確認していませんが,Windows固有の処理はしていないので,簡単な修正で動作すると思います。
  4. このソフトウエアを使用・改変することは自由ですが,完全な無保証ですので,自己責任で使用してください。なお,著作権は放棄していません。

謝辞

本プログラムの画像処理部分は,下記のページを参考にしています。有益な情報を公開してくださっている作者の方に感謝致します。

建築発明工作ゼミ2008
http://kousaku-kousaku.blogspot.jp/2008/11/processingweb.html


添付ファイル: filecolor_tracker_small.png 191件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-04-28 (金) 16:59:53