簡體   English   中英

如何在二進制image_matlab中獲得多個點的中心坐標

[英]How to get centriod coordinates of multiple points in binary image_matlab

嗨,我需要找到每個點的中心坐標(一個二進制圖像中的多個點)。 dotfig.png

當我使用代碼

  A=imread('dotfig.png');
  B=im2bw(A)
  [b,a]=find(B==0);

所以,我得到了a,b的行和列的坐標。 我得到了多個a和多個b(圖中的7個點)。 實際上,我只想得到七個a和七個b,它們代表了pic中七個點的中心坐標。 我知道ginput可能會給我類似的價值。 但是我不想在我的代碼中使用手動輸入。 任何建議表示贊賞!

只需使用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

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM