我正在使用点跟踪器,我知道我可以使用以下命令设置跟踪器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状态,而不是再次初始化跟踪。
答案 0 :(得分:0)
不幸的是,简短的回答是“不”。
vision.PointTracker
是一个系统对象,它是一种特殊的MATLAB类。在系统对象中,属性可以是可调或不可调。只有在第一次调用对象的step
方法之前,才能更改不可调参数属性。目前,vision.PointTracker
的所有属性都是不可调的,这意味着您无法在循环内更改其值。