数字图像处理 --- 相机的内参与外参(CV学习笔记)

这篇具有很好参考价值的文章主要介绍了数字图像处理 --- 相机的内参与外参(CV学习笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Pinhole Camera Model(针孔相机模型)

        针孔相机是一种没有镜头、只有一个小光圈的简单相机。 光线穿过光圈并在相机的另一侧呈现倒立的图像。为了建模方便,我们可以把物理成像平面(image plane)上的图像移到实际场景(3D object)和焦点(focal point)之间,把他想象成一个和物理成像平面等大小的虚拟图像平面(Virtual image plane),这样一来就不再是倒立的图像,而是直立图像。

 数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

        有了相机后,上图中的蓝色盒子就变成了相机,上图中的物理成像平面Image plane也被数字化到由一个个pixel组成的sensor上,并保存下来。因此,对于相机而言,上图中的焦点就是相机的镜头,而上图中的物理成像平面,需要被转换成像素平面(pixel plane),物理成像平面(image plane)与像素平面(pixel plane)大小相同,计量单位不同。物理成像平面的单位是一个物理单位,例如mm,,而像素平面实际上就是一个二维图像,他的单位实际上是某某pixel在图像中的第几行第几列。

为了后续的描述方便我们这里先定义四个坐标系:

1,二维像平面(焦平面)坐标系Image plane,原点为,坐标轴用,表示。

2,二维图像坐标系pixel plane,原点为,坐标轴用,表示。

3,三维相机坐标系pinhole plane/camera,原点为,坐标轴用,,表示。

4,三维世界坐标系world,原点为,坐标轴用,,表示。

        将3D世界场景映射成2D图像(像素平面pixel plane)总共分两步,第一步是把定义在世界坐标系中的实际3D物体映射到3D相机极坐标系中。相当于是把实际世界中的物体分别通过两个不同的坐标系来表示,然后通过找到这两个不同坐标系之间的差异,建立这两个坐标系之间的联系。这一转换关系就是下图中到的转换。

        从3D世界坐标系(world coordinates)到3D相机坐标系(camera coordinates),需要用到外参(extrinsic parameters)或外参矩阵(extrinsic matrix)--->[R t]

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

        其次,从3D相机坐标系(camera coordinates)到2D像素坐标系(pixel plane)需要用到内参(intrinsic parameters)或内参矩阵(intrinsic matrix)--->K。同样是把成像后的图像,用两个不同的坐标系来表示,然后再建立这两个坐标系(物理成像坐标系与二维图像坐标系)之间的联系,使两者可以相互转换。


extrinsic parameters外参:世界坐标系到相机坐标系的转换

        对于世界坐标系中的某一点大M而言,他本身是存在了,并不会因为我们有没有建立坐标系而受影响。但当我们人为的建立坐标系以后,这个点在我们所定义的坐标系下就有坐标值了。首先,对于点M而言,他在世界坐标系下可表示为M=[],而在相机坐标系中M=[],这是同一个点,只不过在不同的坐标系所对应的坐标值不同。(其中:中的上角标“M”表示点M,下角标"w"表示世界坐标系worl,以此类推,关于下角标的定义可参照我上面定义的四个坐标系。)

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

         相机坐标系相对于世界坐标系而言,我们不能保证两个坐标系的原点完全重合,因此,对于x-y-z都存在一定的位移,由一个3x1矩阵t(translation)表示,其中每个元素分别对应了x-y-z方向上的位移:

此外,我们也不能保证相机在拍照时没有任何角度的偏差,因此,这两个坐标系的坐标轴存在一个整体的旋转。由一个3x3矩阵R(rotation)表示:

二者合并得到增广矩阵[R|t],使得:

 

其中:

        这一数学表达式的意义是:一个在世界坐标系中定义的点,如果要用相机坐标系来表示,可以用矩阵[R|t]左乘该点的世界坐标系坐标实现。

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

这样一来就完成了大M点在世界坐标系下的坐标值到相机坐标系下的坐标值的转化:


Intrinsic parameters内参: 现实世界中的一点在相机坐标系下的坐标值到图像上的一点在图像坐标系中的坐标值之间的转换

        通过前面的研究,我们找到了世界坐标系与相机坐标系的联系,相当于学会了用相机坐标系来表示世界的物体(3D Object),现在,我们用相机坐标系来分别描述世界中的实际物体“挪到前面来的”物理成像平面中物体的像,即,在相机坐标系中用不同的坐标值定义了世界中的实际物体大M点虚拟成像平面上的像---小m点 (图一),并找到他们之间的联系。

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

 (图一)

        表示光心,也叫摄影中心。过光心做垂直于物理成像平面的直线叫主光轴(principal axis),垂点叫主点(principal point)。光心与主点之间的距离为焦距f。

        现在,在相机坐标系中,我们令世界中的某一点大M的坐标值为M=[]。在虚拟成像平面中所成的像为小m,且小m的坐标值为m=[](注意:x-y-z的上角标,我用大写的M表示实际点大M所对应的坐标值,用小写的m表示虚拟成像平面中的点小m)。

        同时,我们令主光轴与相机坐标系中的轴重合,单看相机坐标系中由与轴组成的二维平面(图二),我们令大M在这一平面上的投影为,令小m在-平面上的投影为。

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

 (图二)

        在三角形中,线段的长度为小m在轴方向的坐标值,线段的长度为小m在轴方向的坐标值。在三角形中,线段的长度为,线段的长度为。根据三角形与三角形相似,可以建立如下关系:

        又因为小m点一定在物理成像平面上,则,在3D相机坐标系中,的坐标值就等于焦距f,代入上式后得出:

        同样,如果单看相机坐标系中的与轴所组成的平面(图三),且用表示大M在这一平面上的投影,用表示小m在-平面上的投影:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

  (图三)

根据相似相似三角形 与三角形,可以建立如下关系

        这样一来,我们就建立了世界中的大M与虚拟成像平面上的对应点小m,在相机坐标系中的关系:

(上面两式合称为公式1

相机坐标系到像平面坐标系:

        又因为,虚拟成像平面中的小m点,不仅在3D相机坐标系中,也在2D像平面坐标系中。且,像平面坐标系的中心在主光轴上。这就意味着,对于同一个点光心O而言,他在相机坐标系下的坐标值和在2D像平面坐标系下的坐标值相同。即,光心在相机坐标系下的坐标值为[=0,=0],同时,他在2D像平面坐标系中的坐标值也等于[=0,=0]

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

        同理,已知相机坐标系中小m点的坐标值为m=[,],令小m点在相平面中的坐标值为m=[,],则有:

公式2

(图四)所示:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

 (图四)

这就完成了相机坐标系到像平面坐标系的转换。

像平面坐标系到图像坐标系:

        在相机内部,物理成像平面被sensor以pixel为单位采样了,且,图像坐标系的原点在图像的左上角,见(图五)。因此,像平面坐标系中的小m点的坐标值,还需要一个转换关系。

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

 (图五)

        一方面:图像坐标系是用mxn个像素对像平面坐标系的采样。所以需要一个由mm为单位的像平面坐标系到以pixel为单位的图像坐标系的转换。

        假设图像传感器的物理尺寸,也就是物理成像平面的大小为mxn(mm),传感器保存的图像尺寸为wxh(pixel)。要想把mxn的像保存到wxh的图上,则,以mm为单位的物理成像平面与以pixel为单位的图像之间的比例关系为:

第一个等式表示,图像中每个pixel的物理尺寸有多宽mm。

第二个等式表示,图像中每个pixel的物理尺寸有多高mm。

        这样一来,就能用图像坐标系的坐标值(第几行第几列)来替换小m点在像平面坐标系中的坐标值(即,在方向的长度为(mm)和在方向的长度为(mm)):

公式3

        另一方面:二维图像坐标系的原点在图像(sensor)的左上角,而像平面坐标系的原点则是在senor的中心。因此,对于同一个点光心O而言,他在2D图像坐标系下的坐标值和在2D像平面坐标系下的坐标值不同,这两个坐标值之间存在一个偏移量Offset。我们在图像坐标系内定义方向上到的偏移量为,他等于图像的宽度的一半---w/2,在方向上到的偏移量为,他等于图像的长度的一半---h/2。

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

光心O在图像坐标系中的坐标值是:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

公式4

其中:

        公式4的意思是:光心O在图像平面中的坐标值等于他在像平面中的坐标值加上一定的偏移量。同理,已经转换到图像坐标系内的小m点的坐标值(见公式3),加上Offset后为:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

公式5) 

进一步,将公式2带入公式5后有:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

然后再带入公式1,得到:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

公式6

我们令,则上式可简化为:

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

公式7

其中:

1,表示以mm为单位的物理焦距f,在横向等于多少个像素。

2,表示以mm为单位的物理焦距f,在竖向等于多少个像素。

公式7用矩阵的方式可表示为:

一般情况下,在x方向与y方向的偏移量正好是图像长宽的一半,即[,]。这样一来内参矩阵可改为:

其中的3x3矩阵,就叫内参矩阵,用大写的英文字母K表示。

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系


 总结:

最后我们来梳理一下整个转换过程:

1,大M点在世界坐标系下的坐标值[],通过外参矩阵[R t]得到了大M点在相机坐标系中的坐标值[]。(通过同一点在不同坐标系中的坐标值,找到两个坐标系之间的关系。)

2,在相机坐标系中,根据相似三角形求出大M点在虚拟成像平面中所对应的小m点的坐标值[]。(通过同一坐标系下的不同点,找到这两个点之间坐标值的联系)

3,根据虚拟成像平面在相机坐标系中的位置,根据小m点在相机坐标系下的坐标值[,,]得到他在像平面坐标系下的坐标值[=,=]。(通过同一点在不同坐标系中的坐标值,找到两个坐标系之间的关系。)

4,最后,根据像平面坐标系与图像坐标系的相对关系,通过内参矩阵把小m点在像平面中的坐标值[,]转到了图像坐标系中所对应的坐标值[,]。

参考文献:

        1,https://www.cnblogs.com/xiaohuidi/p/15711767.html

        2,What Is Camera Calibration?- MATLAB & Simulink- MathWorks 中国

        3,2.3 透视投影的相机模型_哔哩哔哩_bilibili

数字图像处理 --- 相机的内参与外参(CV学习笔记),Digital Image Processing,内参,内参矩阵,外参,外参矩阵,相机内参,相机坐标系,像平面坐标系

(配图与本文无关) 

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27 文章来源地址https://www.toymoban.com/news/detail-655401.html

到了这里,关于数字图像处理 --- 相机的内参与外参(CV学习笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 自学SLAM(6)相机与图像实践:OpenCV处理图像与图像拼接(点云)

    自学SLAM(6)相机与图像实践:OpenCV处理图像与图像拼接(点云)

    如果写过SLAM14讲第一次的作业,或者看过我之前的运行ORB_SLAM2教程应该都安装过OpenCV了,如果没有安装,没关系,可以看我之前的博客,里面有如何安装OpenCV。 链接: 运行ORB-SLAM2(含OpenCV的安装) 让我们先来看一段代码,学习一下OpenCV的函数调用。 改代码中,演示了如下几

    2024年02月06日
    浏览(8)
  • 数字图像处理第六章——彩色图像处理

    数字图像处理第六章——彩色图像处理

    目录 引言 一、彩色基础 二、彩色模型 2.1 RGB彩色模型 2.2 CMY和CMYK彩色模型  2.3 HSI彩色模型 三、伪彩色图像处理 3.1 灰度分层 3.2 灰度到彩色的变换 四、彩色变换 ​编辑色调与色彩校正 五、平滑与锐化 5.1 平滑 5.2 锐化         在图像处理中,彩色的运用受两个主要因素

    2024年02月09日
    浏览(40)
  • 【图像处理】:相机对焦的原理和实现方法

    【图像处理】:相机对焦的原理和实现方法

    对焦有三种思路: 也就是观测画面中线条边缘的对比度,对比度最高时即合焦。与此同时,对比度最高也意味着入射光线°形成的每个“点”的能量达到最大,因为合焦即光线完全汇聚,所以即可以通过对比度高低来判断,也可以通过能量大小来判断。但问题就是,焦点在前在

    2024年02月15日
    浏览(9)
  • 【图像处理】看OpenCV如何实现相机校准

            在本教程中,将介绍计算机视觉的科学领域,以及相机校准过程的简要总结。计算机视觉是实现自主系统的尝试,这些系统可以实现“人类视觉”的某些功能,其中相机被认为是传感器之一(相当于人眼)。了解捕获图像的内容是一项关键任务,这些计算机视觉系

    2024年02月12日
    浏览(9)
  • 数字图像处理--六、图像压缩

    数字图像处理--六、图像压缩

    目录 1.基本概念 1.1 图像压缩概念及其分类 1.2 数据冗余 1.3 图像信息的度量 1.4 图像保真度准则 (Fidelity Criteria) 1.5 图像压缩模型 2.图像压缩方法 2.1Huffman编码 消除编码冗余 2.2算术编码 (Arithmetic Coding) 消除编码冗余 2.3LZW编码 (Lempel-Ziv-Welch coding) 2.4位平面编码 2.5预测编码 预测

    2024年02月12日
    浏览(35)
  • 数字图像处理(番外)图像增强

    数字图像处理(番外)图像增强

    图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。 图像对比度计算方式如下: C = ∑ δ δ ( i , j ) P δ ( i , j ) C=displaystylesum_{{delta}}delta(i,j)P_delta(

    2024年02月14日
    浏览(37)
  • 数字信号与图像处理实验三:图像处理基础与图像变换

    数字信号与图像处理实验三:图像处理基础与图像变换

    ​ 通过本实验加深对数字图像的理解,熟悉MATLAB中的有关函数;应用DCT对图像进行变换;熟悉图像常见的统计指标,实现图像几何变换的基本方法。 ​ 选择两幅图像,读入图像并显示,同时使用Matlab计算图像的大小,灰度平均值、协方差矩阵、灰度标准差和相关系数。 DC

    2024年02月04日
    浏览(14)
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK里的图像处理库进行图像转换(C++)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2023年04月09日
    浏览(14)
  • 基于matlab的数字图像处理之彩色图像处理

    基于matlab的数字图像处理之彩色图像处理

    一、实验目的 (1)了解如何利用RGB分量生成简单的图像。 (2)熟练掌握RGB彩色模型转换到HIS彩色模型的过程。 (3)熟练掌握RGB图像的彩色分割。 (4)熟练掌握彩色图像如何在向量空间中进行边缘检测。 二、实验仪器(软件平台)     计算机、MATLAB软件 三、实验原理

    2024年02月06日
    浏览(9)
  • 数字图像处理 - 图像处理结合机器学习的应用示例

            在本文中,特别关注树叶分类机器学习技术的实现。我们的目标是演示如何利用机器学习算法来分析一系列叶子照片,从而实现准确分类并提供对植物领域有价值的算法。         图像处理中机器学习的本质         机器学习使计算机能够学习模式并根据

    2024年02月13日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包