首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用OpenCV计算鸟瞰图

用OpenCV计算鸟瞰图
EN

Stack Overflow用户
提问于 2020-12-28 12:50:47
回答 1查看 814关注 0票数 1

为了寻找一种简单的计算鸟瞰的方法,我从Matlab中发现了方法。在手工注释源点和目标点的问题上,这似乎是一种很好的方法。一般来说,我想了解的是,是否有一种仅从物理摄像机属性计算源点和目标点的数学方法。任何使用与Matlab示例相同的输入,但基于OpenCV的代码,我将非常感激。

我知道堆栈溢出不是一个“去写我的代码”社区,所以即使是一个有用的线索或任何数学都会被感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-28 16:36:14

它在你的链接中说输入图像必须是不失真的。那么,让我们假设我们有一个图像,我们知道在现实坐标中垂直于图像平面的线的欧拉角。

偏航角度对我们的案子不重要。如果你旋转图像的滚动量(围绕中心像素),那么你应该能够找到4个想要的点,使用沥青量。为了找到这些想要的点,我们需要知道摄像机的水平和垂直视场值。

那四点是什么?在现实世界中,从上面看,它们形成了一个长方形。矩形的宽度是一种设计选择。例如,闭合点可向下45度(地平线之间),共宽60度,远点可向下10度,具有一定的宽度角。我们需要计算一次这个角度。

h是摄像机的高度,x是摄像机到矩形平面的投影点到矩形远缘的距离(平行于地平线),y是矩形宽度的一半。给出上面的例子,x=h*cot(10)y=h*csc(45)*tan(60/2)。宽度角变为2*atan2(y, x^2+h^2) = 2*atan2(csc(45)*tan(60/2), cot(10)^2+1)

例如,如果相机有70度的视场,那么边缘的点距中心35度。但是中心和边缘之间的像素是,而不是距中心35/2度。应该是atan(tan(35)/2)

一旦找到了所需的4点,就可以使用findHomographywarpPerspective函数,其中dst_pts的宽度/高度比最好是2*y/(x-h*cot(45)) = 2*csc(45)*tan(30)/(cot(10)-cot(45))

输入:无失真图像,滚动和倾斜角,摄像机视场,期望的ROI角度

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65477906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档