如何保存所有的价值centoid许多对象从一个形象?

6视图(30天)
我有一个代码,
一个= imread (“cen.png”);包含两个对象
bw = im2bw(一个);
labeledimage = bwlabel (bw, 4);
对象= regionprops (labeledimage);
数=大小(objek, 1);
重心= 0 (2,2);
i = 1:计数
质心(i) =(我).Centroid对象;
结束
我试着让每个对象的质心,并保存所有centoid对象的价值。但我得到的错误:
在一项任务(我)= B, B,我必须的元素数量是相同的。
错误cek(第8行)重心(i) = objek .Centroid;
我尝试修复这个错误,但我没有找到解决这个错误。请帮我. .谢谢

答案(1)

斯文
斯文 2016年4月19日
重心不是一个标量值。它有两个组件(X坐标,Y坐标),所以你不能把它赋值给一个标量变量。您的代码将工作如果你改变这条线:
质心(i) =(我).Centroid对象;
这条线:
质心(我:)=对象(我).Centroid;
然而你也可以清理代码块不少,只是做的事:
一个= imread (“cen.png”);包含N对象
bw = im2bw(一个);
统计= struct2table (regionprops (bw));
重心= stats.Centroid;%将N N除以2数组对象的#
这对你回答这个问题了吗?
谢谢,斯文。
3评论
图像分析
图像分析 2016年4月20日
allCentroids = [stats.Centroid];
xCentroids = allCentroid(1:2:结束);
yCentroids = allCentroid(2:2:结束);

登录置评。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!