matlab - Matlab使用线方程在图像中画线
问题描述
给定两个坐标点 A 和 B 及其梯度“斜率”。现在,我想linspace
在图像上画一条线(带 - 函数),该线适用于梯度 ~1 的线。该行在图像边界处停止(由于 xlims 和 ylims)。
imshow(I)
xlims = xlim(gca);
ylims = ylim(gca);
现在的问题:我尝试重复另一条几乎垂直的线并且它没有在图像边界处停止(见图):
任何解决方案如何使用 ay=mx+c 方程画一条线,该方程在图像边界处停止,与梯度无关?
编辑:
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)
推荐阅读
- reactjs - 创建 Stripe Checkout 会话时出现运行时错误
- rest - Sonarqube REST API:“GET api/measures/component”WS 中“metrics”的结构是什么
- xml - 如何在golang中解组一个未确定的xml?
- database - 对于backbone.js,如何在URL /people 中创建数据库中的模型?
- javascript - 页面重新渲染比组件重新渲染慢吗?
- python-2.7 - 任何让 DEF 或“选择”工作的方法?
- amazon-web-services - okhttp - 我们计算的请求签名与您提供的签名不匹配
- html - 折叠 Django NavBar:鼠标悬停显示和鼠标悬停隐藏
- r - 如何增加每行变量的值
- reactjs - PolylinesOptions DirectionRender react-google-maps/api