首页 > 编程知识 正文

matlab相机标定简介,matlab相机标定的原理

时间:2023-05-03 14:29:33 阅读:228323 作者:1754

基于两个灭点的相机标定

标签(空格分隔): 未分类

什么是灭点

在世界坐标系中相互平行的两条线,在图像中会相交于一点,这点在实际中表示的是无穷远处的点。

相机模型

相机模型以小孔成像为基本原理。实际情况中,相机由于制作工艺等多方面原因,造成相机不是完美的小孔成像,比如在常见的相机模型中,引入dx,dy表示光心的位置、fx,fy都表示焦距,但由于图像的像素长宽不一致所以用两个方向上的像素单位表示焦距。并且镜头会产生畸变,为了矫正畸变有引入径向和切向畸变模型。相机模型方程:

$sPi = K[R T]Pw$

其中,s为尺度因子,Pi表示点在图像中的坐标,K为相机内参数,RT组成外参矩阵3行4列,这里需要注意不是简单的将T向量放在R矩阵的最后一列,需要将T转为3*4矩阵(前三列是一个单位阵),然后和R相乘。Pw为点在世界坐标系中的点。坐标都是齐次坐标表示。

两个灭点标定方法

现在最流行和精度高的方法是辛勤的冷风棋盘标定。在opencv和matlab中都能方便使用。但是在某些场景下,我没办法使用棋盘来标定,比如高速公路场景。这个时候基于灭点的标定方法就比较方便,因为道路上有许多标线。

在这种方法标定中,K中的f是唯一未知参数,主点假设在图像中心。所以我们的标定就是要计算相机的焦距f,旋转矩阵R,至于T,在不知道额外的标定信息的情况下,只通过两个灭点是不能计算T的,在实际使用中,会在图像中指定一段已知实际尺度的标志来计算T。

焦距

焦距计算原理

图像中,蓝色的两对平行线决定了两个灭点V1和V2,这两对平行线是世界坐标中一个平行四边形的投影。现在我们要计算的是f,也就是OcOi这段先断的长度(Oc是相机坐标系的原点,Oi是图像的中心)。利用几何性质可以马上得到答案。

焦距公式

(4)这个公式利用勾股定理得到。下边一个是通过这三条边所在的三角形相似得到的。

R

图中带有星标的和Oc原点重合的坐标系,代表世界坐标移动到Oc处。那么这个新的坐标系与Oc的夹角就是要求的旋转。而这三个方向上的夹角分别可以用向量OcV2、OcV1、OcV1叉乘OcV2来表示,分别是x方向y方向与z方向的旋转分量。此处注意将两个灭点的坐标转到以Oi为原点的坐标系。那么R就可以表示为:

R矩阵

分量

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。