【问题标题】:Add centroid to plot - Matlab添加质心到绘图 - Matlab
【发布时间】:2015-10-19 18:18:06
【问题描述】:

在下面的脚本中,我在图像中获取 和 的坐标,然后将它们绘制出来。如何将使用 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

【问题讨论】:

    标签: matlab plot centroid


    【解决方案1】:

    添加

    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) 将获得statkth 元素。 stat(k).Centroid 将提取质心为[x, y],然后我们可以将质心的x 坐标引用为stat(k).Centroid(1),将y 引用为stat(k).Centroid(2)


    替代改进

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

    • close all 放在脚本的顶部。这将关闭所有当前打开的数字
    • for 循环之前添加figure; hold on;,并从for 循环中删除hold on。多次调用hold on; 是多余的。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 2014-10-29
      相关资源
      最近更新 更多