0

在下面的脚本中,我在图像中获取 和 硬币的坐标,然后将它们绘制出来。如何将使用 stat 计算的质心(红色,标记为 X)添加到绘图中?

脚本:

clc;
clear;
I = imread('coins.png');
imshow(I)
BW = im2bw(I);


BW_filled = imfill(BW,'holes');
stat = regionprops(BW_filled,'centroid');
boundaries = bwboundaries(BW_filled);

for k=1:10
    b = boundaries{k};
    plot(b(:,2),b(:,1),'g','LineWidth',3);
    hold on;
end
4

1 回答 1

4

添加

plot(stat(k).Centroid(1), stat(k).Centroid(2), 'rx');

plot(b(:,2), b(:,1), 'g', 'LineWidth', 3);
hold on;

您还可以将任何其他自定义项应用于质心点,例如

plot(stat(k).Centroid(1), stat(k).Centroid(2), 'rx', 'LineWidth', 3);

解释

stat(k)将得到 的k第 th 个元素statstat(k).Centroid将提取质心 as [x, y],然后我们可以参考x质心的坐标 asstat(k).Centroid(1)yas stat(k).Centroid(2)


替代改进

我建议对您的代码进行一些改进

  • 放在close all脚本的顶部。这将关闭所有当前打开的数字
  • figure; hold on;在循环之前添加并从for循环内删除。多次调用是多余的。hold onforhold on;
于 2015-10-19T18:28:08.857 回答