中心透视投影和鱼眼投影的区别(Central perspective projection vs. fisheye projection)
前言
panoramic images(全景圖像)以及Fisheye圖像都不滿足中心透視投影(Central perspective projection),不能使用collinearity equation(共線性方程)
中心透視投影
其中中心透視投影數(shù)學(xué)模型建立的假設(shè)是:
物體點(diǎn)入射線和光軸的夾角和在像平面上的成像點(diǎn)和光軸的夾角相同,如上圖所示
魚(yú)眼透視投影
魚(yú)眼圖像希望在有限的平面內(nèi)獲取更大的視角(幾乎接近90度),然而按照中心透視投影的假設(shè)來(lái)說(shuō),在像平面上的像點(diǎn)會(huì)位于無(wú)窮遠(yuǎn)的地方,因此,我們需要修改投影模型,采用折射的方法將入射線沿光軸方向折射得到像點(diǎn)。魚(yú)眼透鏡系統(tǒng)的透鏡類(lèi)型和配置實(shí)現(xiàn)的。
魚(yú)眼投影模型
位于頭頂?shù)聂~(yú)眼圖像實(shí)際上監(jiān)控著位于其下方的整個(gè)半球中的場(chǎng)景,需要將物體坐標(biāo)投影到相機(jī)坐標(biāo)系下(這里我覺(jué)得是對(duì)應(yīng)著我之前的一篇博客中所說(shuō)的4種圖像坐標(biāo)系,從世界坐標(biāo)系變換到相機(jī)坐標(biāo)系下),這不過(guò)不同的是這里的變換增加了投影中心的坐標(biāo)(也是在物體坐標(biāo)系下的),沒(méi)有了平移量,得到了如下的轉(zhuǎn)換公式:
XC=r11?(X?X0)+r21?(Y?Y0)+r31?(Z?Z0)YC=r12?(X?X0)+r22?(Y?Y0)+r32?(Z?Z0)ZC=r13?(X?X0)+r23?(Y?Y0)+r33?(Z?Z0)\begin{array}{l} X_{C}=r_{11} \cdot\left(X-X_{0}\right)+r_{21} \cdot\left(Y-Y_{0}\right)+r_{31} \cdot\left(Z-Z_{0}\right) \\ Y_{C}=r_{12} \cdot\left(X-X_{0}\right)+r_{22} \cdot\left(Y-Y_{0}\right)+r_{32} \cdot\left(Z-Z_{0}\right) \\ Z_{C}=r_{13} \cdot\left(X-X_{0}\right)+r_{23} \cdot\left(Y-Y_{0}\right)+r_{33} \cdot\left(Z-Z_{0}\right) \end{array} XC?=r11??(X?X0?)+r21??(Y?Y0?)+r31??(Z?Z0?)YC?=r12??(X?X0?)+r22??(Y?Y0?)+r32??(Z?Z0?)ZC?=r13??(X?X0?)+r23??(Y?Y0?)+r33??(Z?Z0?)?
其中(XC,YC,ZC)(X_C,Y_C,Z_C)(XC?,YC?,ZC?)為相機(jī)坐標(biāo)系中的物體點(diǎn)坐標(biāo),(X,Y,Z)(X,Y,Z)(X,Y,Z)為物體坐標(biāo)系下的物體點(diǎn)坐標(biāo),(X0,Y0,Z0)(X_0,Y_0,Z_0)(X0?,Y0?,Z0?)是在物體坐標(biāo)系下的投影中心坐標(biāo),ri,jr_{i,j}ri,j?為旋轉(zhuǎn)矩陣的元素。
投影過(guò)程
從上圖中將90°的物體點(diǎn)的入射線,映射到了圓形像的邊緣位置,由上面定義的魚(yú)眼模型,對(duì)應(yīng)的映射關(guān)系為:
αr=90°Rwhere?r=x′2+y′2\begin{aligned} &\frac{\alpha}{r}=\frac{90^{\circ}}{R}&\text { where } &r=\sqrt{x'^{2}+y'^{2}} \end{aligned} ?rα?=R90°???where??r=x′2+y′2??
其中α\alphaα是物體點(diǎn)的入射角,rrr是像點(diǎn)的半徑,RRR是圖像的半徑,像點(diǎn)位置P=(x′,y′)P=(x',y')P=(x′,y′),由于物體點(diǎn)P和像點(diǎn)P’都在一個(gè)3維y=kxy=kxy=kx的平面上,因此P’和P在各自的Z平面上,和坐標(biāo)原點(diǎn)(O′,OCO',O_CO′,OC?)之間的連線夾角相同,因此有:
x′y′=XCYC\frac{x^{\prime}}{y^{\prime}}=\frac{X_{C}}{Y_{C}}y′x′?=YC?XC??,這里由相機(jī)坐標(biāo)系到魚(yú)眼圖像坐標(biāo)系下的變換公式為:
論文中給出的公式為:
x′=2?Rπ?atan?[(XC)2+(YC)2ZC](YCXC)2+1+dx+xhy′=2?Rπ?atan?[(XC)2+(YC)2ZC](XCYC)2+1+dy+yh\begin{aligned} &x^{\prime}=\frac{\frac{2 \cdot \mathrm{R}}{\pi} \cdot \operatorname{atan}\left[\frac{\sqrt{\left(\mathrm{X}_{\mathrm{C}}\right)^{2}+\left(\mathrm{Y}_{\mathrm{C}}\right)^{2}}}{\mathrm{Z}_{\mathrm{C}}}\right]}{\sqrt{\left(\frac{\mathrm{Y}_{\mathrm{C}}}{\mathrm{X}_{\mathrm{C}}}\right)^{2}+1}}+\mathrmze8trgl8bvbq \mathrm{x}+\mathrm{x}_{\mathrm{h}}\\ &y^{\prime}=\frac{\frac{2 \cdot \mathrm{R}}{\pi} \cdot \operatorname{atan}\left[\frac{\sqrt{\left(\mathrm{X}_{\mathrm{C}}\right)^{2}+\left(\mathrm{Y}_{\mathrm{C}}\right)^{2}}}{\mathrm{Z}_{\mathrm{C}}}\right]}{\sqrt{\left(\frac{\mathrm{X}_{\mathrm{C}}}{\mathrm{Y}_{\mathrm{C}}}\right)^{2}+1}}+\mathrmze8trgl8bvbq \mathrm{y}+\mathrm{y}_{\mathrm{h}}\\ \end{aligned} ?x′=(XC?YC??)2+1?π2?R??atan[ZC?(XC?)2+(YC?)2??]?+dx+xh?y′=(YC?XC??)2+1?π2?R??atan[ZC?(XC?)2+(YC?)2??]?+dy+yh??
跟推導(dǎo)的公式相比來(lái)說(shuō)查了后面加上的項(xiàng),其中dy,dx\mathrmze8trgl8bvbq \mathrm{y},\mathrmze8trgl8bvbq \mathrm{x}dy,dx為失真多項(xiàng)式,他們是為了對(duì)鏡頭失真進(jìn)行建模設(shè)計(jì)的,xh,yh\mathrm{x}_{\mathrm{h}},\mathrm{y} _{\mathrm{h}}xh?,yh?是主點(diǎn)的坐標(biāo)( coordinates of the principle point ),這一項(xiàng)我也不是很清楚。
參考文獻(xiàn)
E. Schwalbe, “Geometric modelling and calibration of fisheye lens camera systems,” Proc. 2nd Panoramic Photogrammetry Workshop, Int. Archives of Photogrammetry and Remote Sensing, vol. 36, no. Part 5, 2005
總結(jié)
以上是生活随笔為你收集整理的中心透视投影和鱼眼投影的区别(Central perspective projection vs. fisheye projection)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息时代的安全威胁
- 下一篇: Python爬取起点中文网小说信息及封面