如何在不重新初始化跟踪的情况下更改点跟踪器的属性?

时间:2015-06-30 08:11:18

标签: matlab computer-vision tracking video-processing matlab-cvst

我正在使用点跟踪器,我知道我可以使用以下命令设置跟踪器initilay的属性:

tracker = vision.PointTracker('NumPyramidLevels',3,'MaxBidirectionalError', 2, 'MaxIterations',30,'BlockSize',[5 5]);
initialize(tracker, points.Location, objectFrame);

然后使用步骤方法跟踪工作正常。

我的问题如何在跟踪器工作期间使这些属性动态化,我在while语句中使用了相同的方法如下:

while ~isDone(videoFileReader)
    frame = step(videoFileReader);
    [points, validity,scores] = step(tracker, frame);
tracker = vision.PointTracker('NumPyramidLevels',3,'MaxBidirectionalError', 2, 'MaxIterations',30,'BlockSize',[5 5]);
initialize(tracker, points, objectFrame);
end

但问题是跟踪器再次初始化!但是我需要继续使用prevouis fram状态,而不是再次初始化跟踪。

1 个答案:

答案 0 :(得分:0)

不幸的是,简短的回答是“不”。

vision.PointTracker是一个系统对象,它是一种特殊的MATLAB类。在系统对象中,属性可以是可调不可调。只有在第一次调用对象的step方法之前,才能更改不可调参数属性。目前,vision.PointTracker的所有属性都是不可调的,这意味着您无法在循环内更改其值。