可以使用regionprops
來計算質心和麪積,然後用面積來計算近似半徑:
% generate matrix
Mat=zeros(12,12);
Mat(2,6:7)=255; Mat(3,5)=255; Mat(3,8)=255; Mat(4,5)=255;
Mat(4,8)=255; Mat(5,6:7)=255;
Mat(10,10)=255; Mat(11,9)=255; Mat(12,10)=255; Mat(11,11)=255;
% convert to binary
MatBin = Mat > 0;
% fill circles
MatFull = imfill(MatBin,4,'holes');
% get centroids and areas
props = regionprops(MatFull,{'Area','Centroid'});
Area = [props(:).Area];
Centroid = reshape([props(:).Centroid],[],2)';
% compute radius
Radius = sqrt(Area ./ pi);
% plotting
imshow(MatFull,[],'InitialMagnification','fit')
hold on
for ii = 1:numel(Radius)
text(Centroid(ii,1),Centroid(ii,2),['r = ' num2str(Radius(ii))],...
'VerticalAlignment','middle','HorizontalAlignment',...
'center','FontSize',12,'Color','b');
end
hold off

怎麼辦你的意思是「獲取標籤」?什麼是預期的輸出? – rayryeng
['regionprops'](https://nl.mathworks.com/help/images/ref/regionprops.html)可能就是你要找的。 – m7913d