我目前正在编写代码,以便为每个视频帧收集while循环内的质心坐标的平均值。 对于每个循环周期,每个单帧的输出只有一个平均值。我的目标是收集所有平均值并绘制出来。
for object = 1:length(centroid);
centX = centroid(1,object);
centY = centroid(2,object);
vidIn = step(htextinsCent, vidIn, [centY centX], [centY-6 centX-9]); %this line is for coordinate display purpose on each frame
end
for object = length(centroid)>0;
columncentroid=centroid';
average=mean(columncentroid);
end
我很难在代码运行结束时列出所有帧中的所有平均值。在每个循环之后,较早的平均值将被最新值替换。 请建议我采取适当的步骤。先谢谢你。
答案 0 :(得分:0)
似乎你已经有一个2xN的质心值数组;你所要做的就是展示它们。如果你想得到所有值的平均值,你可以
average = mean(centroid');
这取第一维的平均值 - 转置后的是第一列中的所有X值和第二列中的Y值。此操作后average
应为2元素行向量。
display(average);
会告诉你这些值是什么。
它似乎这就是你想要的,你做的一切都是正确的(除了那个莫名其妙的循环......)。如果这不是您所需要的,请在您的问题中更清楚地解释!
答案 1 :(得分:0)
要保留所有平均值,您可以写:
average = []; %init average as empty
for object = length(centroid):-1:1;
columncentroid=centroid';
average= [average mean(columncentroid(:,object))]; %add new average to the end of average array
end