我正在使用以下代碼:
majors = cell_props.MajorAxisLength;
minors = cell_props.MinorAxisLength;
ctr = cell_props.Centroid;
theta = cell_props.Orientation;
imshow(cell_full)
hold on
for k = 1:length(measurements)
xMajor=ctr(k,1) [-1 1]*(majors(k)/2)*cosd(theta(k));
yMajor=ctr(k,2) [-1 1]*(majors(k)/2)*sind(theta(k));
plot(xMajor,yMajor,'r','LineWidth',2);
xMinor=ctr(k,1) [-1 1]*(minors(k)/2)*sind(theta(k));
yMinor=ctr(k,2) - [-1 1]*(minors(k)/2)*cosd(theta(k));
plot(xMinor,yMinor,'b','LineWidth',2);
end
hold off
我的形象是:

當我嘗試運行前面提到的代碼時,由于某種原因,它創建了以下幾行:

我意識到我在這里的數學可能有問題,但我不確定是什么。我嘗試將 theta 轉換為弧度,切換線條的小坐標和大坐標。似乎沒有任何效果。
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
正如克里斯托夫在他的評論中指出的那樣,軸應該垂直反射。這意味著方向角的正方向是錯誤的。前面的負號theta(k)應該可以解決它。
xMajor=ctr(k,1) [-1 1]*(majors(k)/2)*cosd(-theta(k));
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/349124.html
下一篇:獲取總影像值
