Matlab利用直线方程在图像中绘制直线

Matlab利用直线方程在图像中绘制直线,matlab,Matlab,给定两个坐标点A和B及其梯度“斜率”。现在,我想在图像上画一条线(使用linspace-函数),它适用于渐变为1的线。线路在图像边界处停止(由于xlims和ylims) 现在的问题是:我尝试重复另一条几乎垂直的线,它没有在图像边界处停止(见图): 有什么解决方案吗?我如何使用y=mx+c方程画一条线,该方程在图像边界处停止,与梯度无关 编辑: 简易解决方法: 只要在你画好线后重新设定你的极限 imshow(I) xlims = xlim(gca); ylims = ylim(gca); %

给定两个坐标点A和B及其梯度“斜率”。现在,我想在图像上画一条线(使用
linspace
-函数),它适用于渐变为1的线。线路在图像边界处停止(由于xlims和ylims)

现在的问题是:我尝试重复另一条几乎垂直的线,它没有在图像边界处停止(见图):

有什么解决方案吗?我如何使用y=mx+c方程画一条线,该方程在图像边界处停止,与梯度无关

编辑:

简易解决方法: 只要在你画好线后重新设定你的极限

imshow(I) 
xlims = xlim(gca);
ylims = ylim(gca);
% plot your lines
xlim(xlims)
ylim(ylims)

你能发布你目前用于绘制图的代码吗?简短回答:以一种尊重图像边界的方式计算邻域,并且你的lims不应该是一个问题。我创建了一个玩具示例:请查看编辑后的文章。谢谢,但它不起作用。请看我附在第一篇文章的玩具示例。
img = uint8(zeros(382, 382));

pointA = [181.4594, 129.7092];
pointB = [185.3411, 251.6005];

imshow(img)
hold on
plot(pointA(1), pointA(2), 'ro')
plot(pointB(1), pointB(2), 'bo')
hold off

% From y = mx + x
slope = 31.4015;
intercept = -5.5684e+03;


xlims = xlim(gca);
ylims = ylim(gca);

y = xlims*slope + intercept;


Xline = linspace(xlims(1), xlims(2), 382);
Xline_pole1 = linspace(xlims(1), pointA(1), 382/2);
Xline_pole2 = linspace(xlims(2), pointB(1), 382/2);
Yline = Xline*slope + intercept;
Yline_pole1 = Xline_pole1*slope + intercept;
Yline_pole2 = Xline_pole2*slope + intercept;

hold on
plot( Xline_pole1, Yline_pole1, 'Color', 'b', 'LineWidth', 3 );
hold off


% Check how many coordinates are within image frame
for zz=1:length(Xline_pole1)
    hold on
    plot(Xline_pole1(zz),Yline_pole1(zz), 'm+');
end
imshow(I) 
xlims = xlim(gca);
ylims = ylim(gca);
% plot your lines
xlim(xlims)
ylim(ylims)