2015-04-03 85 views
1

Contour畫出輪廓的長軸和短軸

所以我有以上的輪廓,我想繪製長軸和輪廓短軸行,我做的是完全一樣

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); 

但我弄到低於

Result

圖片我做錯了? 在此先感謝。

回答

2

對於短軸,方向爲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); 
+0

但是在regionprops的「定位」的輸出爲度? – 2015-04-03 14:14:59

+0

@AbdullahAlMubarok:你說得對,這不是問題,對不起。我編輯了我的答案。 – Ratbert 2015-04-03 14:26:02