当我使用代码时
A=imread('dotfig.png');
B=im2bw(A)
[b,a]=find(B==0);
因此,我得到了a,b的行和列的坐标。我得到了多个a和多个b(图中的7个点)。实际上,我只想得到七个a和七个b,它们代表了pic中七个点的中心坐标。我知道ginput
可能会给我类似的价值。但是我不想在我的代码中使用手动输入。任何建议表示赞赏!
答案 0 :(得分:0)
只需使用regionprops
:
stats = regionprops(B,'Centroid')
以下是如何使用它的详细方法:
首先,我会生成一些随机点
a=zeros(50);
a(ind2sub(size(a),randi(numel(a),7,1)))=1;
a=padarray(a,[10 10]);
a=conv2(a,fspecial('gaussian',7,1),'same');
b=a>0.02;
imagesc(b);
然后使用regionprops:
stats = regionprops(b,'Centroid');
这只是绘制各种质心:
hold on;
for n=1:numel(stats)
plot(stats(n).Centroid(1),stats(n).Centroid(2),'rx'); hold on
text(stats(n).Centroid(1)-4,stats(n).Centroid(2)-4,...
['x=' num2str(stats(n).Centroid(1)) ', y=' num2str(stats(n).Centroid(2))],'Color','w' );
end