1

メイン関数を実行しようとすると、 Matlab r2013b でエラーが発生します。Undefined variable or class "obj.reader.step"コピー&ペーストされた機能とカスタムaviファイルを使用していますが、これは有効と思われます。コードフラグメントは

function frame = readFrame()
        frame = obj.reader.step();
    end

そのようにobjが設定されている場所

obj.reader = vision.VideoFileReader('sample.avi');

obj.videoPlayer = vision.VideoPlayer('Position', [20, 400, 700, 400]);
obj.maskPlayer = vision.VideoPlayer('Position', [740, 400, 700, 400]);

obj.detector = vision.ForegroundDetector('NumGaussians', 3, ...
    'NumTrainingFrames', 40, 'MinimumBackgroundRatio', 0.7);

obj.blobAnalyser = vision.BlobAnalysis('BoundingBoxOutputPort', true, ...
    'AreaOutputPort', true, 'CentroidOutputPort', true, ...   
    'MinimumBlobArea', 400);

完全なコードはリンクにあります。単純な問題だと思いますが、私は長い間 matlab を使用していませんでした。これはビデオコーデックでしょうか?助けてくれてありがとう

4

1 に答える 1

3

リンク先のページの上部を形成します。

この例は、上部に本体があり、その下にネストされた関数の形式のヘルパー ルーチンを持つ関数です。

つまり、readFrame関数は、オブジェクトを作成する関数内にネストされた関数であることを意味しobj.readerます。obj.readerまたは、引数として渡すこともできます。obj.readerオブジェクトを生成したコード( setupSystemObjects) を見ると、これもネストされた関数ですがobj、外側の main 関数に戻ります。ちなみに、Matlab エディターですべてのコードをまとめて表示したい場合はedit multiObjectTracking、コマンド ウィンドウに入力するだけです。

ネストされた関数は、外側の関数のすべての変数 (ワークスペース) にアクセスできます。このブログ投稿では、それらについて詳しく説明しています。

于 2013-12-05T01:47:24.553 に答える