カラーマーカーを使ったトラッキングの動作について

カラーマーカーを使ったトラッキングのページにあるサンプルプログラムに動画データ(mp4)を入力して動作させました。
次のエラーが出ました。
関数または変数 'createMask' が未定義です。
エラー: test2 (line 69)
mask = createMask(frame);
69 mask = createMask(frame);
使用したスクリプトは添付します。
データは添付不能でした。
送付するにはどうすればよいでしょうか。ご教授ください。

 Accepted Answer

Tohru Kikawada
Tohru Kikawada on 23 Apr 2019

3 votes

ファイル内のコメントに沿って作ってみてはいかがでしょう?
% 色のしきい値アプリを使ってマスク関数を作成
colorThresholder(frame);
% 色空間はHSVを選択
% 緑色のマーカーだけが検出されるようにしきい値を決める
% しきい値が決まったら「エクスポート」⇒「関数のエクスポート」で
% createMask.m関数を生成し、保存する

More Answers (2)

Takashi Kano
Takashi Kano on 26 Apr 2019

0 votes

ご親切にご教授いただきありがとうございます。
赤いマーカーを使用してスレッショルドを操作しマーカーのトレースができるようになりました。
ところが、マーカーが回転して動画内で大きさが半分になるとマーカーのトレースができなくなりました。普通は球形のマーカーを使って、この問題を回避していると思いますが、現在の用途では球形のマーカーを使いたくない事情がございます。何か良い方法をご存知でしたら教えてください。
宜しくお願い致します。

1 Comment

Tohru Kikawada
Tohru Kikawada on 2 May 2019
Edited: Tohru Kikawada on 2 May 2019
下記をもっと小さな値にしてみてはいかがでしょう。
'MinimumBlobArea', 100,
vision.BlobAnalyzer のヘルプドキュメントに詳しい使い方がのっています。

Sign in to comment.

Takashi Kano
Takashi Kano on 13 May 2019

0 votes

ご教授いただきありがとうございました。
ご教授通りにしてみたところ、動画の最後までトレースしました。
ところが今度はマーカー以外にも複数トレースしてしまいました。
スレッショルドの処理が甘いのか、そもそもの動画に問題があるのか
動画撮影に関して何か理想的な環境があれば教えていただけると幸いです。
よろしくお願い申し上げます。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!