1. 相机内参理论值计算公式
先理解相机内参定义:像素焦距 fx fy 单位为pixel
可以直接理解为将相机焦距f = XX mm 换算成像素焦距fx = XX pixel
对于一个相机,sensor是1/2.8,比例为16:9,原始分辨率为3840*2160,镜头焦距为3.38mm
计算相机内参:
对于16:9的sensor,长、宽、对角线的比例为16:9:18.3576
sensor尺寸为1/2.8 inch,故对角线实际尺寸为16/2.8 mm
则sensor长、宽的实际尺寸为:16/2.8/18.3576*16 mm 16/2.8/18.3576*9 mm
换算成mm/pixel为:
u=16/2.8/18.3576*16/3840 mm/pixel = 0.001297
再将焦距mm通过此中间量换算为pixel:
fx = f/u = 3.38/0.001297 pixel = 2606 pixel
2. 再根据相机内参换算图像经过裁剪、缩放后的内参
先明确:内参为你的相机sensor+镜头的一套固有参数,不更换相机或镜头,内参并不会改变。将图像进行裁剪、缩放,本质是一系列比例变换,只需改变系数k而不影响后续计算。
则:
对于图像裁剪crop,每个像素代表的实际尺寸并不改变,即u不变,fx也不变;
对于图像缩放resize,每个像素代表的实际尺寸变了,即u变了,如果缩放比例为k1,则u变为u/k1,公式变为:fx_new = f/u*k1 = k1*fx
对于图像先crop,再resize,图像实际使用的sensor大小变了,每个像素代表的实际尺寸也变了。如果crop比例为k2,resize比例为k1,(注意:k1和k2都是相对于crop+resize变换前的图像)则u变为u/k1*k2,公式变为:fx_new = f/u*k1/k2 = fx*k1/k2
3. 实例:
A.3840*2160 resize成1280*720
k1 = 1280/3840 = 1/3
fx_new = 2606/3 = 868.7
B. 3840*2160 crop成2560*1440 再resize成1280*720
k1 = 1280/3840 = 1/3
k2 = 2560/3840 = 2/3
fx_new = 2606*1/3/(2/3) = 1303