【发布时间】:2021-12-18 10:27:14
【问题描述】:
我正在使用以下代码:
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 转换为弧度,切换线条的次坐标和主坐标。似乎没有任何效果。
任何帮助将不胜感激。
【问题讨论】:
-
旋转方向错误。您可以看到轴应该围绕垂直/水平轴镜像...所以根据您的 0 度在哪里以及哪种方式是正的,您可以进行数学计算。
标签: image matlab image-processing