【问题标题】:Draw Major Axis and Minor Axis of contour绘制轮廓的长轴和短轴
【发布时间】:2015-08-06 10:56:58
【问题描述】:

所以我有上面的轮廓,我想绘制轮廓的长轴和短轴线,我所做的就是这样

s=regionprops(image,'Centroid','Orientation','MajorAxisLength','MinorAxisLength');

xMajor=s.Centroid(1) + [-1 1]*(s.MajorAxisLength/2)*cosd(s.Orientation);
yMajor=s.Centroid(2) + [-1 1]*(s.MajorAxisLength/2)*sind(s.Orientation);

xMinor=s.Centroid(1) + [-1 1]*(s.MinorAxisLength/2)*sind(s.Orientation);
yMinor=s.Centroid(2) + [-1 1]*(s.MinorAxisLength/2)*cosd(s.Orientation);

line(xMajor,yMajor);
line(xMinor,yMinor);

但到目前为止我得到的是下面的图片

我做错了吗? 提前致谢。

【问题讨论】:

    标签: matlab plot line


    【解决方案1】:

    对于短轴,方向是s.Orientation+90,所以cosd(s.Orientation+90) = sind(s.Orientation)sind(s.Orientation+90) = -cosd(s.Orientation)

    所以你必须使用:

    xMinor=s.Centroid(1) + [-1 1]*(s.MinorAxisLength/2)*sind(s.Orientation);
    yMinor=s.Centroid(2) - [-1 1]*(s.MinorAxisLength/2)*cosd(s.Orientation);
    

    【讨论】:

    • 但是 regionprops 中“方向”的输出是度数吗?
    • @AbdullahAlMubarok:你说得对,这不是问题,抱歉。我已经编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-06-24
    • 2012-04-16
    • 2012-11-04
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2020-09-08
    相关资源
    最近更新 更多