2017-04-09 9 views
0

次の質問があります。 私はmatlab 2016で作業しています。 Viola-Jonesアルゴリズムを使用してビデオファイル内の顔を検出したいと思います。 私はstep文でビデオファイルを入力しようとすると、私は次のエラーを取得する:ビデオファイルの顔を検出しています。データ型の使用中にエラーが発生しました

Error using 
    vision.CascadeObjectDetector/validateInputsImpl 
    (line 330) 
    Expected input number 2 to be 
    one of these types: 

    uint8, uint16, double, single,int16 

    Instead its type was 
    vision.VideoFileReader. 

    Error in VJ1_video (line 12) 
    bboxes = step(faceDetector, videoFReader); 

私はVideoFileReaderの何とかタイプはタイプのいずれかに変換する必要があることを理解する:UINT8、uint16の、ダブル、シングル、int16。 しかし、私はこれがどのように行われるのか分かりません。教えてください。 CascadeObjectDetectorがないフレーム(映像)のシーケンス上の単一のフレーム(画像)、上で動作

clear all; 
%Load the video using a video reader object 
    videoFReader = vision.VideoFileReader('D:\465.avi'); 
%Create a detector object. 
    faceDetector = vision.CascadeObjectDetector; 
%Detect faces. 
    bboxes = step(faceDetector, videoFReader); 
%Annotate detected faces 
    IFaces = insertObjectAnnotation(videoFReader, 'rectangle', bboxes, 'Лицо'); 
%Create a video player object to play the video file. 
    videoPlayer = vision.VideoPlayer; 

%Use a while loop to read and play the video frames. 
    while ~isDone(videoFReader) 
    videoFrame = videoFReader(); 
    videoPlayer(videoFrame); 
    end 
%Release the objects. 
    release(videoPlayer); 
    release(videoFReader); 

答えて

0

: はここに私のプログラムコードです。したがって、既に提案したように、step関数の入力は画像です。フレームを反復する間に顔の検出が行われるようにコードを変更します。

アン(未テスト)の提案:

%Load the video using a video reader object 
     videoFReader = vision.VideoFileReader('D:\465.avi'); 
    %Create a video player object to play the video file. 
     videoPlayer = vision.VideoPlayer; 
    %Create a detector object. 
     faceDetector = vision.CascadeObjectDetector; 

    %Use a while loop to read and play the video frames. 
     while ~isDone(videoFReader) 
     videoFrame = videoFReader(); 
     %Detect faces. 
     bboxes = step(faceDetector, videoFReader); 
     %Annotate detected faces 
     IFaces = insertObjectAnnotation(videoFReader, 'rectangle', bboxes, 'Лицо'); 
     %Show annotated frames IFaces (instead of videoFrame) 
     videoPlayer(IFaces); 
     end 

    %Release the objects. 
     release(videoPlayer); 
     release(videoFReader); 
関連する問題