動画でカスケード分類器使用

조회 수: 4 (최근 30일)
わとー
わとー 2020년 9월 2일
댓글: わとー 2020년 9월 6일
私は以下のようにして一枚絵からカスケード分類器を用いた認識を行いました。
detector = vision.CascadeObjectDetector('~~');
RGB = imread('~~');
bbox = step(detector,RGB);
detectedImg = insertObjectAnnotation(RGB,'rectangle',bbox,'mouse');
figure; imshow(detectedImg);
今度は動画で認識を行いたいのですがRGBの文をvision.VideoFileReader(~~~)に変えたら
エラー: vision.CascadeObjectDetector/validateInputsImpl (line 338)
2 番目の入力引数 は次のタイプのいずれかにする必要があります:
uint8, uint16, double, single, int16
指定されたタイプは vision.VideoFileReader でした。
エラー: mouserecognation2 (line 6)
bbox = step(detector,v);  」
というエラーが出てしまいました。 どう書き直すと良いでしょうか?
追記:vf= RGB();を追加してdetectedImg = insertObjectAnnotation(vf,'rectangle',bbox,'mouse');
とすると動画は出たのですが再生しません。

채택된 답변

Shunichi Kusano
Shunichi Kusano 2020년 9월 3일
こんにちは。
VideoFileReaderは、ビデオを再生するわけではなく、ビデオの先頭から1フレームずつ読み込む仕様です。
詳しくは下記ページの使用法の部分を読んでいただけるとわかるかと思います。
vr = vision.VideoFileReader(ファイル名);
frame = vr(); % 先頭フレームを読み込む(以後、このコマンドを実行するたび次のフレームを読み込む)
imshow(frame); % 読んだフレームを表示
ですので、1フレームずつ読んで処理してを繰り返すのが基本的な使い方です。
while ~isDone(vr)
frame = vr();
%% 処理本体
% なにか書く
%%
end
  댓글 수: 1
わとー
わとー 2020년 9월 6일
videoPlayer = vision.VideoPlayer;を追加して
figure; imshow(detectedImg);をvideoPlayer(detectedImg);に書き換えたところ動きました、有難うございます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!