图像上的绘图出现偏移
Plot over image appears offset
我正在尝试在导入的图像上画一个圆和一条直线 a=b
。情节出现了,但我 运行 遇到了两个问题:
- 图像未居中 - 此处,圆应该位于图像的中心
- 直线出现倒斜率
clear;close all;
I0 = imread('temp.png');
I1 = im2double(I0);
I = imresize(I1,[320 320]);
a=0:1:320;
b = a;
r=320/2;
xc=0; yc=0;
th = linspace( 0, 2*pi, 100);
x = r * cos(th) + xc;
y = r * sin(th) + yc;
figure,imshow(I)
hold on
plot(b,a,'linewidth',3)
hold on
plot(x,y,'white','linewidth',3)
我可以通过绘制 (b,-a,'linewidth',3)
来修正直线的斜率,但直线不会绘制在图像上。
如有任何帮助,我们将不胜感激。是的,这是一个作业,但它根本不是最终答案:)
点(0,0)不是图像的中心。由于您使用 imshow
显示图像 I
,因此轴的大小为 I
,在您的情况下为 0
到 320
。所以你需要根据它来选择圆心。请参阅下面代码中带有注释 %1
的修改行。
imshow
设置轴 ij
mode,用于图像,反转垂直轴。要正常绘制线条,您可以设置 xy
模式。请参阅代码中带有注释 %2
的添加行。
clear;close all;
I0 = imread('temp.png');
I1 = im2double(I0);
I = imresize(I1,[320 420]);
a=0:1:320;
b = a;
r=320/2;
xc = size(I, 2)/2; yc = size(I, 1)/2; %1
th = linspace( 0, 2*pi, 100);
x = r * cos(th) + xc;
y = r * sin(th) + yc;
figure,imshow(I)
hold on
axis xy %2
plot(b,a,'r','linewidth',3)
hold on
plot(x,y,'white','linewidth',3)
我正在尝试在导入的图像上画一个圆和一条直线 a=b
。情节出现了,但我 运行 遇到了两个问题:
- 图像未居中 - 此处,圆应该位于图像的中心
- 直线出现倒斜率
clear;close all;
I0 = imread('temp.png');
I1 = im2double(I0);
I = imresize(I1,[320 320]);
a=0:1:320;
b = a;
r=320/2;
xc=0; yc=0;
th = linspace( 0, 2*pi, 100);
x = r * cos(th) + xc;
y = r * sin(th) + yc;
figure,imshow(I)
hold on
plot(b,a,'linewidth',3)
hold on
plot(x,y,'white','linewidth',3)
我可以通过绘制 (b,-a,'linewidth',3)
来修正直线的斜率,但直线不会绘制在图像上。
如有任何帮助,我们将不胜感激。是的,这是一个作业,但它根本不是最终答案:)
点(0,0)不是图像的中心。由于您使用
imshow
显示图像I
,因此轴的大小为I
,在您的情况下为0
到320
。所以你需要根据它来选择圆心。请参阅下面代码中带有注释%1
的修改行。imshow
设置轴ij
mode,用于图像,反转垂直轴。要正常绘制线条,您可以设置xy
模式。请参阅代码中带有注释%2
的添加行。
clear;close all;
I0 = imread('temp.png');
I1 = im2double(I0);
I = imresize(I1,[320 420]);
a=0:1:320;
b = a;
r=320/2;
xc = size(I, 2)/2; yc = size(I, 1)/2; %1
th = linspace( 0, 2*pi, 100);
x = r * cos(th) + xc;
y = r * sin(th) + yc;
figure,imshow(I)
hold on
axis xy %2
plot(b,a,'r','linewidth',3)
hold on
plot(x,y,'white','linewidth',3)