世界坐标系 、相机坐标系 、图像(物理成像平面)坐标系(Z=1, 归一化坐标系),像素坐标系
这四个坐标系的坐标依次为 Pw , Pc , , Puv (二维平面内)
注意书中的 P 就是这里的 Pc,看的时候不认真,把Pw 和 Pc 搞混了
(1) Pc = R Pw + t = [X,Y,Z](XYZ是相机坐标系坐标) 或者 Pc = Tcw Pw 从世界坐标系变换到相机坐标系
(2)Pw = R Pc + t 或者 Pw = Twc Pc 从相机坐标系变换到世界坐标系
(3) = [X/Z,Y/Z, I] 归一化坐标系下的坐标 相机坐标系到图像(归一化)坐标系
Puv = K 归一化坐标左乘 K(内参矩阵)就得到了像素坐标
(4)Puv = ( K Pc )/ Z (书99页 公式5.6 公式中的 P 是相机坐标系下的坐标)
直接左乘内参矩阵变为像素坐标的前提是已经做了归一化,否则还需要除以z坐标
(5) 世界坐标系到像素坐标 Puv = K ( Tw Pw ) / Z
有大佬总结了 关于针孔相机模型 从物到像和从像到物的流程:
我上述总结的就是从物到像的过程,
像到物:
在写去畸变代码的时候会用到这部分,书102页也有对应的畸变公式,把这两个联合起来进行进行参考。
相机将三维世界投影到二维平面上,使用针孔和畸变两个模型来描述(畸变是因为相机透镜的存在)。透镜是为了获得更好的成像效果。
透镜对成像过程产生的影响分为两种:
一、透镜自身的形状对光线传播的影响。
透镜自身形状引起的畸变称为径向畸变,分为两大类:桶形畸变和枕形畸变
二、安装过程中透镜和成像平面不平行
称为切向畸变
单目相机模型
书102页总结了单目相机的成像过程。 把物到像过程自己推到下就没问题。
双目相机模型
单目相机无法计算深度(z)
双目相机根据视差计算深度 ( 视差与深度成反比 视差 d = (f * b) / z )
其实视差d计算比较困难,其计算量和精度称为问题,
RGB-D深度相机模型
它可以主动测量每个像素的深度,根据原理分为两大类:
一、通过红外结构光原理测量像素距离。根据返回的结构光图案计算距离
二、通过飞行时间原理测量像素距离。根据发送到返回之间的光束飞行时间确定距离。
RGB-D深度相机可以自己完成深度和彩色图像素之间的配对,输出一一对应的彩色图和深度图。可以在同一个图像位置,读取到色彩信息和距离信息,计算像素的3D相机坐标,生成点图(PointCloud)
局限性:只能在室内使用。
灰度图:一个像素的灰度由八位整数记录,0-255
深度图:记录了各个像素之间的距离,
彩色图:需要用到通道。每个像素都要记录R、G 、B三个数值,每一个数值就是一个通道,每个通道都有八位整数表示。
比如,OpenCV中得到了一个24位像素,前八位表示蓝色数值,中间八位表示绿色数值,后八位表示红色数值。
关于相机标定