- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一台针孔相机,它具有已知的intristic值,例如相机矩阵和失真系数。假设有一个点距离相机足够远,所以可以说它位于无限远处。
给定该点的图像坐标(以像素为单位),我想计算相对于连接该点和该点的轴的相机旋转(因此,如果将相机对准此点并且在图像的光学中心,则旋转为0,0 )。
如何使用opencv完成?
非常感谢!
最佳答案
您需要指定其他约束条件-将摄影机从其当前姿势旋转到使光轴与任意光线对齐的位置,使摄影机可以围绕光线本身自由旋转(即,未指定“横滚” Angular )。
假设您希望滚动为零,即您希望运动为纯水平倾斜。只要您要对齐的光线不平行于垂直图像轴(在这种情况下摇摄和摇晃都是相同的运动),这就有一个独特的解决方案。
然后,解的计算如下。让我们使用OpenCV相机框架:Z = [0,0,1]'(其中“'”表示转置)是相机聚焦轴,朝向镜头外,Y = [0,1,0]'垂直轴朝下,X = Z x Y(其中“x”是叉积),水平相机轴朝图像右侧。因此“平移”是围绕Y的旋转,“倾斜”是关于X的旋转。
令U = [u1,u2,u3]',其中||你|| = 1是要旋转到的光线。您想要应用一个将Z带到 vector u和Y定义的平面Puy上的平移,然后应用一个将Z带到u上的倾斜。
第一次旋转的 Angular 是(Z和Puy之间的 Angular )= [90度-(Z和Y之间的 Angular x U)。这是因为Y x U与Puy正交。查找表达式,以计算Wikipedia或在线其他位置上的 vector 之间的 Angular 。一旦有了 Angular (或其余弦和正弦),围绕Y的旋转就可以表示为标准旋转矩阵Ry。
第二次旋转的 Angular ,即Z到达Puy之后大约为X的 Angular ,是将Ry应用于Z之后 vector Z与U之间的 Angular ,或者等效地为Z与inv(Ry)* U之间的 Angular 。计算 vector 之间的 Angular ,并用于建立有关X,Rx的标准旋转矩阵
最终的变换为Rx * Ry。
关于opencv - 如何使用远距离的一个点(使用opencv)来计算相机方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24250350/
我目前正在开展一个项目,该项目涉及在对象大小从 10 到 1000000 不等的场景中工作。我一直遇到一个问题,当我处于这些尺寸的大范围内时,物体开始“闪烁”这仅在物体相交时发生,然后随着相机远离物体
我是一名优秀的程序员,十分优秀!