Agisoft PhotoScan-使用手册-附录C.相机模型
Agisoft PhotoScan支持多种参数镜头失真模式。在处理之前必须选择接近最佳真实失真场的具体模型。所有型号都采用中央投影机。使用布朗的失真模型对非线性失真进行建模。
摄像机模型指定从本地摄像机坐标系中的点坐标到图像帧中的像素坐标的变换。
本地摄像机坐标系在摄像机投影中心有原点。Z轴指向观看方向,X轴指向右侧,Y轴指向下。
图像坐标系的原点位于左上角的图像像素处,左上角像素的中心坐标为(0.5,0.5)。图像坐标系中的X轴指向右侧,Y轴指向下。图像坐标以像素为单位。
下面为每个支持的相机型号提供用于将本地相机坐标系中的点投影到图像平面的等式。
方程中使用了以下定义:
(X,Y,Z) - 本地摄像机坐标系中的点坐标,
(u,v) - 图像坐标系中的投影点坐标(以像素为单位),
f - 焦距,
cx,cy - 主点偏移量,
K1,K2,K3,K4 - 径向畸变系数,
P1,P2,P3,P4 - 切向失真系数,
B1,B2 - 亲和性和非正交性(歪斜)系数,
w,h - 以像素为单位的图像宽度和高度。
相机
x = X / Z
y = Y / Z
r = sqrt(x2+ y2)
x' = x(1 + K1r2+ K2r4+ K3r6+ K4r8) + (P1(r2+2x2)+ 2P2xy)(1 + P3r2+ P4r4)
y' = y(1 + K1r2 + K2r4 + K3r6 + K4r8) + (P2(r2+2y2) + 2P1xy)(1 + P3r2 + P4r4)
u = w * 0.5 + cx+ x'f + x'B1+ y'B2
v = h * 0.5 + cy+ y'f
鱼眼相机
x0= X / Z
y0= Y / Z
r0= sqrt(x02+ y02)
x = x0* tan-1r0/ r0
y = y0* tan-1r0/ r0
r = sqrt(x2+ y2)
x' = x(1 + K1r2+ K2r4+ K3r6+ K4r8) + (P1(r2+2x2)+ 2P2xy)(1 + P3r2+ P4r4)
y' = y(1 + K1r2 + K2r4 + K3r6 + K4r8) + (P2(r2+2y2) + 2P1xy)(1 + P3r2 + P4r4)
u = w * 0.5 + cx+ x'f + x'B1+ y'B2
v = h * 0.5 + cy+ y'f
球形摄像机(等矩形投影)
u = w * 0.5 + f * tan-1(X / Z)
v = h * 0.5 + f * tan-1(Y /sqrt(X2+ Z2))
where:
f = w / (2 * pi)
注意
球形(等矩形)相机模型不支持失真。在PhotoScan中加载图像之前,所有的失真都应该被纠正。
如果使用旋转的相框/鱼眼相机拍摄全景照片,我们建议使用相机工作站功能在PhotoScan中处理原始图像,而不是将其拼接在外部软件中。
球形相机(圆柱投影)
u = w * 0.5 + f * tan-1(X / Z)
v = h * 0.5 + f * Y / sqrt(X2+ Z2)
where:
f = w / (2 * pi)
注意
球形(圆柱形)相机型号不支持失真。在PhotoScan中加载图像之前,所有的失真都应该被纠正。
如果使用旋转的相框/鱼眼相机拍摄全景照片,我们建议使用相机工作站功能在PhotoScan中处理原始图像,而不是将其拼接在外部软件中。