MATLAB - 跟随帮助示例的未定义​​变量或类

时间:2013-12-05 01:41:30

标签: matlab tracking motion matlab-cvst

我正在关注来自mathworks.com/help的基于动态的多目标跟踪 当我尝试执行main函数时,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。愿这是视频编解码器吗? 在此先感谢您的任何帮助

1 个答案:

答案 0 :(得分:3)

形成您链接到的页面顶部:

  

此示例是一个函数,主体位于顶部,辅助例程的形式为nested functions

换句话说,readFrame函数是在您创建obj.reader对象的函数内部的嵌套函数。或者,您可以传入obj.reader作为参数。如果查看生成obj.reader对象(setupSystemObjects)的代码,它也是一个嵌套函数,但它会将obj返回给外部main函数。顺便说一句,如果你想在Matlab编辑器中一起查看所有代码,只需在命令窗口中输入edit multiObjectTracking

Nested functions可以访问外部函数的所有变量(工作空间)。 This blog post更详细地讨论了它们。