由攝像機的內參K計算視景體

2021-08-05 18:23:53 字數 1841 閱讀 4356

由攝像機的內參k計算視景體——glfrustum的引數推導

風之憂傷

建立視景體的glfrustum函式的形式為: glfrustum(left,right,bottom,top,near,far),前4個引數表示座標,可正可負,後兩個引數表示距離,為正數.大多數opengl的參考文獻都只是簡單的介紹了一下glfrustum的語法和作用,而並不詳細介紹該函式的每個引數如何確定.但是,在增強現實中,往往需要把計算出來的內引數矩陣指定給gl,而不能隨便設定.那麼怎麼把內引數矩陣轉化為glfrustum的引數,這就是下面要討論的問題.

攝像機的內引數矩陣k的形式是:

假設影象的高度和寬度分別為height和width,這裡near和far可以任意設定(比如near=100, far=10000).我們用兩種方法來推導.

(一)幾何推導

如下圖,這是視景體的近裁剪面上的頂點在像平面上的投影.

圖中長為top的線段被對映成長度為v0的線段,而長為-bottom(圖中bottom的座標值為負,加負號才表示長度)的線段被對映成長度為height-v0的線段.根據相似三角形的關係,可以直接得到:

top/v0 = near/fy;

-bottom/(height-v0) = near/fy;

於是得到引數top和bottom的計算公式:

top = v0*near/fy  (1)

bottom = (v0-height)*near/fy  (2)

類似地,從下圖可以很容易得到left和right:

left = -u0*near/fx  (3)

right = (width-u0)*near/fx  (4)

上面的(1)-(4)式就是從內引數矩陣k計算glfrustum函式的引數的公式.

(二)代數推導

現在我們從代數上來推導這四個公式,以證明其正確性.

我們知道,在計算機視覺中,內引數矩陣k將攝像機座標系下的三維點(x,y,z)投影到攝像機的像平面上成像,即:

化簡得到:

x = fx*x/z + u0;

y = fy*y/z + v0;

gl中所用的攝像機座標系與計算機視覺中使用的攝像機座標系不同,正好繞x軸旋轉了180度,即y,z兩軸反號.所以在gl中,對上式中的yz取負號,變為:

x = -fx*x/z + u0;

y = fy*y/z + v0;

對於視景體左上角的點,座標為(left, top, -near),被對映成(0,0,1),所以:

0 = -fx*left/(-near) + u0;

0 = fy*top/(-near) + v0; 即:

left = -u0*near/fx,即為(3)式;

top = v0*near/fy,即為(1)式.

對於視景體右下角的點,座標為(right, bottom, -near),被對映成(width,height,1),所以:

width = -fx*right/(-near) + u0;

height = fy*bottom/(-near) + v0; 即:

right = (width-u0)*near/fx,即為(4)式;

bottom = (v0-height)*near/fy,即為(2)式.

從上面可以看出,代數方法和幾何方法推導出來的公式都一樣.

綜上,從攝像機的內引數矩陣k計算函式glfrustum的引數的公式為:

top = v0*near/fy;

bottom = (v0-height)*near/fy;

left = -u0*near/fx;

right = (width-u0)*near/fx.

反之,如果已知視景體和影象尺寸,也可以由此公式推導出內引數矩陣k.

攝像機模型(內參 外參)

下圖是針 機的基本模型。平面 稱為攝像機的像平面,點oc 稱為攝像機中心 或光心 f成為攝像機的焦距,oc 為端點且垂直於像平面的射線成為光軸或主軸,主軸與像平面的交點p是攝像機的主點。如圖所示,影象座標係為o xy,攝像機座標係為oc xcy czc 記空間點xc 在攝像機座標系中的齊次座標為 x...

攝像機模型(內參 外參)

下圖是針 機的基本模型。平面 稱為攝像機的像平面,點ococ稱為攝像機中心 或光心 f成為攝像機的焦距,ococ為端點且垂直於像平面的射線成為光軸或主軸,主軸與像平面的交點p是攝像機的主點。如圖所示,影象座標係為o xy,攝像機座標係為oc xcyczcoc xcyczc。記空間點xcxc在攝像機座...

影視專業攝像機與DV攝像機的區別

dv攝像機與影視專業 攝像機相比,特別是與廣播級攝像機或者是 高畫質攝像機相比較,除了體積小 便宜以外,還有解析度較低等區別。我個人接觸最多的就是 松下180a廣播級 攝像機,體積也較小,較低,輕便靈活,適合普通的 影視愛好者。而betacam sp dv cam和dvc pro則非常昂貴,也笨重,...