鱼眼镜头
鱼眼镜头长这样
#鱼眼镜头成像样张
拍出来的照片长这样
鱼眼名称的由来
之所以叫鱼眼,是因为仿生的鱼眼
鱼眼镜头的实现
实际的实现,是分层的
鱼眼相机的成像模型
成像模型是这样的
正向成像过程基本分三步:
- 针孔成像,得到理想坐标
- 鱼眼畸变
- 调整图像坐标
3D世界中一点 P, 坐标为 X,首先针孔投影到相平面坐标是[a; b]: s [ a   b   1 ] T = R X + T s[a \, b \, 1]^T = RX + T s[ab1]T=RX+T, 且有 r 2 = a 2 + b 2 θ = a t a n ( r ) r^2 = a^2 + b^2 \\ \theta = atan(r) r2=a2+b2θ=atan(r)
之后施加鱼眼畸变
θ
d
=
θ
(
1
+
k
1
θ
2
+
k
2
θ
4
+
k
3
θ
6
+
k
4
θ
8
)
\theta_d = \theta (1 + k_1 \theta^2 + k_2 \theta^4 + k_3 \theta^6 + k_4 \theta^8)
θd=θ(1+k1θ2+k2θ4+k3θ6+k4θ8)
畸变后坐标为[x’; y’],满足
x
′
=
(
θ
d
/
r
)
a
y
′
=
(
θ
d
/
r
)
b
x' = (\theta_d / r) a \\ y' = (\theta_d / r) b
x′=(θd/r)ay′=(θd/r)b
最后调整到像素坐标系[u; v] u = f x ( x ′ + α y ′ ) + c x v = f y y ′ + c y u = f_x (x' + \alpha y') + c_x \\ v = f_y y' + c_y u=fx(x′+αy′)+cxv=fyy′+cy