Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB中放错了圆圈

我正在尝试在具有给定X,Y坐标和半径的MATLAB中的图像上绘制圆。这是为我绘制多个圆圈的方法的代码夹头-

function circle( Xs, Ys, Rs, LineWidth, LineColor) radius = Rs; centerX = Xs; centerY = Ys; for i=1:length(centerX) rectangle('Position',[centerX(i), centerY(i), radius(i), radius(i)],... 'Curvature',[1,1],... 'LineWidth',LineWidth,... 'LineStyle','-',... 'EdgeColor',LineColor); end end 但是,每当我在图像中看到圆圈时,都会发现圆圈与给定的坐标有一些错位(例如,它们向右/向下移动了一点)。我该如何解决这个问题?



回答:

您正在绘制的实际上是一个矩形 。但是您定义了一个曲率,使其看起来像一个圆。然后,通过带有矩形坐标的边界框定义圆。矩形的位置是左上角(或在常规绘图中是左下角),而您所说的半径实际上是该边界框的宽度和高度。

这就是我的意思:

>> figure, imshow(I) >> rectangle('Position',[100,100,120,120],'Curvature',[1,1]) >> rectangle('Position',[100,100,120,120],'Curvature',[0,0],'EdgeColor','r') >> axis on 此代码将在由左上角的相同矩形坐标定义的相同位置产生一个圆和一个矩形。红色是我正在谈论的边界框。

编辑:如果您不想使用矩形函数,则可以执行以下操作:

>> figure,imshow(I) >> hold on >> plot(centerX+radius*sin(0:0.1:2*pi),centerY+radius*cos(0:0.1:2*pi))

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.