




已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
現(xiàn)在我們有一架平衡雙目攝像機(jī),和一個(gè)棋盤和一個(gè)待重構(gòu)的物體或者要拍攝的畫面,我們的目的就是利用兩個(gè)攝像機(jī)捕捉同一個(gè)畫面或者物體圖像,然后根據(jù)在兩幅圖像上遍歷同一個(gè)世界三維點(diǎn)映射到兩個(gè)圖像平面的響應(yīng)匹配點(diǎn),然后利用匹配點(diǎn)視差和攝像機(jī)相關(guān)參數(shù),以及圖像二維點(diǎn)的信息就可以得到世界物體的三維坐標(biāo)。1、立體標(biāo)定cvStereoCalibrate(),利用兩個(gè)攝像機(jī)同時(shí)捕獲的不同視場(chǎng)來(lái)實(shí)現(xiàn)標(biāo)定,同時(shí)獲得本征矩陣E,基礎(chǔ)矩陣F,兩攝像機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣R和平移矩陣T或者攝像機(jī)內(nèi)參數(shù)M和畸變系數(shù)distCoeffs。立體標(biāo)定和單攝像機(jī)標(biāo)定是有區(qū)別的。立體標(biāo)定除了可以計(jì)算出攝像機(jī)的內(nèi)參數(shù)和畸變系數(shù),還可以計(jì)算出本征矩陣E,基礎(chǔ)矩陣F,兩個(gè)攝像機(jī)的旋轉(zhuǎn)矩陣R和平移向量T.立體標(biāo)定函數(shù)參數(shù)中需要兩個(gè)著相機(jī)的內(nèi)參數(shù)和畸變系數(shù),它們即可以作為輸入,也可以作為輸出,這里我們讓它們作為輸出,由立體標(biāo)定函數(shù)計(jì)算它們。因此,我們就可以手持棋盤,然后用兩個(gè)攝像機(jī)同時(shí)捕捉棋盤的不同視場(chǎng),對(duì)于每一個(gè)視場(chǎng),我們兩個(gè)攝像機(jī)都有拍攝的同一棋盤的圖像對(duì),對(duì)于兩個(gè)攝像機(jī)旋轉(zhuǎn)矩陣R和平移向量T,我們通過(guò)一個(gè)視場(chǎng)就可以求解出來(lái),然而為了計(jì)算結(jié)果的穩(wěn)定,則需要多個(gè)視場(chǎng)來(lái)優(yōu)化結(jié)果。對(duì)于兩個(gè)攝像機(jī)的內(nèi)參數(shù)矩陣和畸變系數(shù),我們至少需要10個(gè)視場(chǎng)。因此,我們可以通過(guò)手持棋盤,旋轉(zhuǎn)和平移棋盤以獲得10個(gè)視場(chǎng),從而獲得10幅圖像對(duì),來(lái)進(jìn)行立體標(biāo)定。在這一步,我們利用極線約束來(lái)檢查標(biāo)定的結(jié)果。(有了本征矩陣我們就可以得到基礎(chǔ)矩陣,有了基礎(chǔ)矩陣,我們就可以計(jì)算極線)2、立體校正cvStereoRetify(),利用相機(jī)內(nèi)參數(shù)以及上一步得到R,T,得到兩個(gè)攝像機(jī)極線水平對(duì)準(zhǔn)的旋轉(zhuǎn)矩陣Rl和Rr,投影矩陣P,重投影矩陣Q,為實(shí)現(xiàn)兩幅圖像水平對(duì)準(zhǔn)準(zhǔn)備數(shù)據(jù)。該函數(shù)名為立體校正,并沒(méi)有完成真正的立體校正,而是獲得了立體校正的所需要的參數(shù)。通過(guò)立體校正,我們可以獲得兩個(gè)攝像機(jī)的投影矩陣P,有了投影矩陣,我們可以利用相機(jī)模型公式5-19,然后在利用立體校正后的圖像(特征點(diǎn)水平對(duì)齊)來(lái)進(jìn)行三維坐標(biāo)計(jì)算。然而我們可能并不這樣做,因?yàn)镺penCV已經(jīng)給出了計(jì)算的函數(shù),輸入視差圖和重投影矩陣Q,得到三維點(diǎn)坐標(biāo)。有時(shí)候,我們?cè)谌S重建的時(shí)候,這樣做:假設(shè)我們想重建一個(gè)物體,我們用兩個(gè)攝像機(jī)拍攝這個(gè)物體,如果該物體有足夠的surf特征點(diǎn),我們獲取這兩幅圖像的特征點(diǎn)的坐標(biāo)位置,然后利用立體校正得到投影矩陣,計(jì)算獲取物體三維點(diǎn)云。這樣的步驟是錯(cuò)誤的,或者做出來(lái)可能效果也不好。因?yàn)槲椅覀冞M(jìn)行立體標(biāo)定的目的是為了使得兩幅圖像水平對(duì)齊,也就是兩臺(tái)攝像機(jī)的光軸是平行的,即無(wú)窮遠(yuǎn)處相交。我們知道對(duì)于兩幅圖像,水平對(duì)齊后,像對(duì)于的特征點(diǎn)或者匹配點(diǎn)在同一圖像掃描行上,這樣,我們才能利用理想情況下的深度公式:Z=fT/x1-x2,f為焦距,T表示兩個(gè)相機(jī)光軸之間的距離。我們可以假設(shè),如果我們獲得的兩幅圖像對(duì)應(yīng)的匹配點(diǎn),不在同一行,那么x1-x2,就會(huì)發(fā)生變化。因此,如果我們?cè)谧鰣D像預(yù)處理時(shí),一定要始終保持兩幅圖像的大小是一樣的。不能隨便的剪切。3、校正映射分為兩個(gè)步驟:計(jì)算查找表和重投影,此步完成真值的圖像的校正。1、cvInitUndistortRectifyMap()函數(shù)利用攝像機(jī)內(nèi)參數(shù)M和畸變系數(shù),以及投影矩陣P或者校正后的攝像機(jī)內(nèi)參數(shù)Mrect,以及旋轉(zhuǎn)矩陣T,來(lái)計(jì)算原始圖像到校正后的查找表。2、cvRemap函數(shù),利用計(jì)算得到的查找表,和拍攝得到原始圖像,設(shè)置一定的插值方法,得到校正后的圖像。由于左右圖像都需要校正,所以該過(guò)程要進(jìn)行兩次。4、立體匹配到了這一步,我們就可以根據(jù)具體的情況,應(yīng)用不同的特征點(diǎn)匹配了。OpenCV實(shí)現(xiàn)的塊匹配算法相當(dāng)于密集點(diǎn)匹配算法,我們也可以利用稀疏點(diǎn)匹配算法,如sift等。通過(guò)這些匹配點(diǎn),我們就可以獲得匹配點(diǎn)的位置,即x1和x2,我們就可以計(jì)算得到他們之間的視差,從而得到計(jì)算得到三維點(diǎn)坐標(biāo)。對(duì)于一個(gè)物體點(diǎn)的坐標(biāo)(X,Y,Z),我們關(guān)心的更多的是Z,Z就是所謂的深度,通俗一點(diǎn):Z是兩個(gè)攝像機(jī)透鏡中心(光心)所在平面到物體點(diǎn)所在平面之間的距離。(推導(dǎo)見:相機(jī)模型)因?yàn)槲覀冇?jì)算的過(guò)程中操作的的大部分是像素,那么我們得到距離也是用像素來(lái)度量的。5、現(xiàn)實(shí)世界單位和像素的關(guān)系這個(gè)問(wèn)題是個(gè)頭疼的問(wèn)題,我感覺(jué)只有等待自己親自驗(yàn)證了,才能肯定的回答,但是我在這里分析一下先。1)世界物體的三維點(diǎn),一般選擇的應(yīng)該是左攝像機(jī)的投影中心為坐標(biāo)系的原點(diǎn)(數(shù)學(xué)模型中的)。視差是左攝像機(jī)對(duì)應(yīng)的匹配點(diǎn)的x坐標(biāo)減去右相機(jī)對(duì)應(yīng)的匹配點(diǎn)的x坐標(biāo)。我們知道,如果知道了視差和重投影矩陣,以及匹配點(diǎn)就可以根據(jù)公式求解出三維點(diǎn)坐標(biāo)。我們將主要公式列出:(Q中除了cx來(lái)至于右相機(jī),其他參數(shù)均是左相機(jī),Tx為為左攝像機(jī)投影中心到右攝像機(jī)投影中的平移向量的x分量)如果Q是由Pl和Pr聯(lián)合求解的得到的話,那么Q中cx和cy等參數(shù)都應(yīng)該是校正后的攝像機(jī)參數(shù)了。如果那樣的話,主光線在無(wú)窮遠(yuǎn)處相交,則cx=cx,既然我們使用的校正后的攝像機(jī)內(nèi)參數(shù),那么cx就必然等于cx了,那為什么還會(huì)列出上面的Q表達(dá)式呢,直接將Q矩陣的右下角設(shè)置為0不就好了嗎?難道它也在告訴我們,我們使用Q時(shí)也可以在用校正前的攝像機(jī)內(nèi)參數(shù)求解?這不得而知了。2)我們知道攝像機(jī)的內(nèi)參數(shù)是根據(jù)單應(yīng)性求解得到的。為了理解,我們引入下圖:在棋盤平面上,我們定義一個(gè)三維坐標(biāo)系,棋盤平面上的一個(gè)內(nèi)角點(diǎn)就是一個(gè)世界物理點(diǎn),這個(gè)三維坐標(biāo)系中,棋盤位于xoy平面內(nèi),那么棋盤上的點(diǎn)的z坐標(biāo)就是0值。我們知道從棋盤上的點(diǎn)(X,Y,0),映射到圖像平面內(nèi)的點(diǎn)(x,y),如果沒(méi)有攝像機(jī)內(nèi)參數(shù)的影響,即攝像機(jī)是完美的,也或者說(shuō)攝像機(jī)的內(nèi)參數(shù)矩陣是單位陣。那么三維點(diǎn)(其實(shí)是平面內(nèi)的一點(diǎn))經(jīng)過(guò)一定的旋轉(zhuǎn)R和平移t,就可以到達(dá)圖像平面內(nèi)的一點(diǎn)。但是實(shí)際上攝像機(jī)并不是完美的,那么這個(gè)單應(yīng)性矩陣中,就含有攝像機(jī)的內(nèi)參數(shù)。攝像機(jī)通過(guò)求解單應(yīng)性求解內(nèi)參數(shù)。單應(yīng)性矩陣由攝像機(jī)內(nèi)參數(shù)、旋轉(zhuǎn)矩陣和平移向量構(gòu)成,其中攝像機(jī)內(nèi)參數(shù)矩陣是不變量,旋轉(zhuǎn)和平移是由不同視場(chǎng)決定。那么我們采用不同的棋盤格子的大小,那么該格子的大小將影響哪些呢?其實(shí)將影響平移向量的結(jié)果。旋轉(zhuǎn)矩陣OpenCV中說(shuō)到的是R=r1,r2,r3,三個(gè)矢量?jī)蓛烧?,并且模是相等的。那么我們就可以將其系?shù)提出,那么R就為正交矩陣。其實(shí)我感覺(jué)構(gòu)造R的時(shí)候,R就是一個(gè)正交矩陣。一個(gè)正交矩陣乘上一個(gè)向量,那么該向量的模是不變的,這也是線性代數(shù)中學(xué)的正交變換。那么棋盤各自的大小的信息成分,就轉(zhuǎn)化到了平移向量身上1、線性模型可用針孔模型來(lái)近似表示任一點(diǎn)P(Xc,Yc,Zc)在像平面的投影位置,也就是說(shuō),任一點(diǎn)P(Xc,Yc,Zc)的投影點(diǎn)p(x,y)都是OP(即光心(投影中心)與點(diǎn)P(Xc,Yc,Zc)的連線)與像平面的交點(diǎn)如上一篇文章中的圖2.2。對(duì)應(yīng)比例關(guān)系可得:(說(shuō)明:Xc的c下表表示camera相機(jī),上述公式是在相機(jī)坐標(biāo)系內(nèi),利用三角形相似原理,即x/f=Xc/Z,其中上述公式的單位為毫米,f表示焦距單位毫米)上式可以用齊次坐標(biāo)與矩陣的形式表示為:將上一篇文章中的(2.3)和(2.4)代入(2.6)式就可以得到點(diǎn)P的世界坐標(biāo)與其投影坐標(biāo)(u,v)之間的關(guān)系為:(說(shuō)明:上述公式中完成了從世界坐標(biāo)系到圖像坐標(biāo)系的轉(zhuǎn)變,中間經(jīng)過(guò)了相機(jī)坐標(biāo)系的過(guò)度,Xw中的w表示world世界,單位為毫米,而u,v是的 單位為像素,即完成了從毫米像素的轉(zhuǎn)換。)其中ax=f/dx,ay=f/dy;M是34的矩陣投影矩陣,M1完全由相機(jī)的內(nèi)參數(shù)ax,ay,u0,v0決定,(u0,v0)為主點(diǎn)坐標(biāo),ax,ay分別表示圖像u軸和v軸上的尺度因子,M2則完全由相機(jī)的外部參數(shù)決定。而相機(jī)標(biāo)定就是確定相機(jī)的內(nèi)外參數(shù)。由式(2.7)可知,若已知相機(jī)的內(nèi)外參數(shù),則相當(dāng)于已知投影矩陣M.當(dāng)已知M和空間點(diǎn)P的坐標(biāo):矢量Xw=(Xw,Yw,Zw,1)T,(矢量Xw上面有一個(gè)矢量標(biāo)識(shí)杠,T表示矢量的轉(zhuǎn)置)。式(2.7)可以給出三個(gè)方程,消去Zc就可以得到其投影點(diǎn)p的坐標(biāo)(u,v)(其實(shí)也就是我用一個(gè)相機(jī)就可以拍攝一個(gè)物體的圖片了)。但是由于M為34不可逆矩陣,當(dāng) 點(diǎn)P的投影坐標(biāo)(u,v)和投影矩陣M為已知時(shí),我們只能得到關(guān)于Xw,Yw,Zw的兩個(gè)線性方程,即射線OP的方程,由上一篇圖2.2我們可以看出,位于射線OP上的所有空間點(diǎn)的投影點(diǎn)(即圖像點(diǎn))都是p點(diǎn)。所以不能唯一確定空間點(diǎn)P的世界坐標(biāo)矢量Xw.所以,為了得到空間物體的三維世界坐標(biāo),就必須有兩個(gè)或更多的相機(jī)構(gòu)成立體視覺(jué)系統(tǒng)模型才能實(shí)現(xiàn)。2、非線性相機(jī)模型在實(shí)際的成像過(guò)程中,考慮鏡頭的失真,一般都存在非線性畸變,所以線性模型不能準(zhǔn)確描述成像幾何關(guān)系。非線性畸可用下列公式描述:若考慮非線性畸變,則對(duì)相機(jī)標(biāo)定時(shí)需要使用非線性優(yōu)化算法。而有研究表明引入過(guò)多的非線性參入(如離心畸變和薄棱畸變)不僅不能提高精度,還會(huì)引起解的不穩(wěn)定。一般情況下徑向畸變就足以描述非線性畸變,所有本課題只是考慮徑向畸變。則將式(2.9)中的徑向畸變代入式(2.8)可得:OpenCV中講解:從制作上講,從制作一個(gè)”球形“透鏡比制作一個(gè)數(shù)學(xué)上理想的透鏡更容易。故產(chǎn)生了徑向畸變。從機(jī)械方面講,也很難把透鏡和成像儀保持平衡。故產(chǎn)生了切向畸變。1、徑向畸變對(duì)徑向畸變,成像儀中心(光學(xué)中心)是畸變?yōu)?,隨著向邊緣移動(dòng),畸變?cè)絹?lái)越嚴(yán)重。故我們可以用在r=0處的泰勒級(jí)數(shù)展開的前幾項(xiàng)來(lái)定量描述。對(duì)于便宜的網(wǎng)絡(luò)攝像機(jī),我們通常使用前兩項(xiàng),其中通常第一項(xiàng)為k1,而第二項(xiàng)為k2。對(duì)畸變很大的攝像機(jī),比如魚眼透鏡,我們使用第三個(gè)徑向畸變項(xiàng)k3。通常成像儀某點(diǎn)的徑向位置按下式調(diào)節(jié):這里(x,y)是畸變點(diǎn)在成像儀上的原始位置,(xcorrected,ycorrected)表示矯正后的新位置。2、切向畸變切向畸變是由于透鏡制造上的缺陷使得透鏡本身與圖像平面不平行而產(chǎn)生的。徑向畸變可以有兩個(gè)額外的參數(shù)p1和p2來(lái)描述,如下:因此總共有5個(gè)我們需要的畸變參數(shù)。由于在OpenCV程序中5個(gè)參數(shù)是必需的,所以它們被放置到一個(gè)畸變向量中,這是一個(gè)51的矩陣,按順序依次包含k1,k2,p1,p2和k3。3、平行雙目立體視覺(jué)模型通過(guò)針孔成像模型的分析可知,為了由像點(diǎn)坐標(biāo)唯一的確定世界三維坐標(biāo),就必須通過(guò)兩個(gè)或者多個(gè)相機(jī)來(lái)共同完成。通過(guò)兩個(gè)相隔一定距離的相機(jī)來(lái)實(shí)現(xiàn)對(duì)3D場(chǎng)景的成像,就是雙目成像,也稱為立體視覺(jué)成像。相機(jī)拍攝景物時(shí),先把兩部相機(jī)的光軸匯聚于感興趣的物體上,則兩個(gè)光軸的交點(diǎn)稱為匯聚點(diǎn),而該點(diǎn)到基線中心的距離稱為匯聚距離。當(dāng)匯聚的距離有限時(shí),雙目立體視覺(jué)系統(tǒng)統(tǒng)稱為匯聚式雙目立體視覺(jué)模型;當(dāng)匯聚距離無(wú)線遠(yuǎn)時(shí),雙目立體視覺(jué)系統(tǒng)就被成為平行式雙目立體視覺(jué)模型。本文研究的是平行雙目立體視覺(jué)系統(tǒng),下面著重介紹一下平行雙目立體視覺(jué)模型。如圖2.3所示,當(dāng)目標(biāo)距離遠(yuǎn)遠(yuǎn)大于焦距時(shí),可假定透鏡中心與像平面的距離等于攝像機(jī)的焦距f(=OlCl=OrCr)。兩光軸平行且距離(即基線)為2h。世界坐標(biāo)系定義為OXYZ,左右圖像平面都與相機(jī)平面XOY平行,其中Ol、Or分別為左圖像與右圖像的中心(即左右圖像局部坐標(biāo)系的原點(diǎn),Xl,Xr分別表示左右相機(jī)局部坐標(biāo)系的X軸),Cl和Cr分別為左右相機(jī)的光心,Z軸表示到攝像機(jī)(在Z=0處)的距離。X軸表示“水平”距離(Y軸朝負(fù)面而去,沒(méi)有出現(xiàn),即滿足右手坐標(biāo)準(zhǔn)則)。X=0是右相機(jī)光心位置。光心即投影中心。假設(shè)三維空間點(diǎn)P(X,Y,Z)的像在左、右兩個(gè)像平面上的投影分別是Pl(xl,yl)和Pr(xr,yr)(其中xl,yl,xr,yr分別表示投影點(diǎn)在每個(gè)圖像局部坐標(biāo)系即2.1節(jié)所講的圖像坐標(biāo)系O1xy中的坐標(biāo))。由小孔成像原理可知:P,Cl,Pl三點(diǎn)共線,則由三角相似,可得:(這里我只是把內(nèi)容以圖片的形式貼出來(lái),不在手寫了,論文中下面部分存在是錯(cuò)誤的)下面內(nèi)容摘自:西安工業(yè)大學(xué) 基于雙目立體視覺(jué)的圖像匹配與三維重建 張海波5、基于雙目立體視覺(jué)技術(shù)的三維重建攝像機(jī)通過(guò)透視變換將物體的三維信息轉(zhuǎn)換為二維圖像,因?yàn)槎S圖像中的點(diǎn)與三維物體上的點(diǎn)可以通過(guò)某種對(duì)應(yīng)關(guān)系相互轉(zhuǎn)換,也就是說(shuō),可以從不同方向拍攝的同一空間點(diǎn)的兩幅圖像中的依據(jù)該對(duì)應(yīng)關(guān)系反推出三維物體的立體空間位置。這就是雙目立體視覺(jué)中三維信息獲取的過(guò)程。兩幅圖像通過(guò)立體匹配可得到各特征點(diǎn)的視差信息,根據(jù)視差信息確定各點(diǎn)的深度信息,最終獲得被測(cè)物體的三維信息。5.1 雙目立體視覺(jué)三維測(cè)量原理如圖5.1所示,兩臺(tái)攝像機(jī)的鏡頭中心或光學(xué)中心之間的距離稱為雙目視覺(jué)系統(tǒng)的基線B,利用雙目視覺(jué)成像系統(tǒng)可以確定具有像平面坐標(biāo)點(diǎn)(x1,y1)和(x2,y2)的三維空間點(diǎn)W的世界坐標(biāo)。1)兩臺(tái)攝像機(jī)相同且它們的攝像機(jī)坐標(biāo)系統(tǒng)各對(duì)應(yīng)軸精確平行(光軸平行)圖5.2給出了兩臺(tái)攝像機(jī)鏡頭連線所在平面(XZ平面)。將世界坐標(biāo)系設(shè)置在第一臺(tái)攝像機(jī)坐標(biāo)系上,即世界坐標(biāo)系和第一臺(tái)攝像機(jī)的攝像機(jī)坐標(biāo)系重合。根據(jù)攝像機(jī)坐標(biāo)系與世界坐標(biāo)系重合情況下的透視變換公式,三維空間點(diǎn)W的X軸坐標(biāo)表示為:式中X1和Z1為三維空間點(diǎn)形在世界坐標(biāo)系(此時(shí)世界坐標(biāo)系與第一個(gè)攝像機(jī)坐標(biāo)系重合)中的X軸和Z軸坐標(biāo)。同理,如果將世界坐標(biāo)系設(shè)置在第二臺(tái)攝像機(jī)上,則W點(diǎn)在X軸的坐標(biāo)可表示為:因?yàn)榛€長(zhǎng)度是B且三維空間點(diǎn)W的Z軸坐標(biāo)對(duì)兩臺(tái)攝像機(jī)坐標(biāo)系統(tǒng)是一樣的,所以有:將式(5.3)帶入式(5.1)和式(5.2),得式(5.6)把三維空間點(diǎn)與像平面之間的距離Z,即三維信息中的深度信息,與視差D(三維點(diǎn)對(duì)應(yīng)的像坐標(biāo)x2和x1之差)直接聯(lián)系起來(lái)。視差的大小直接與深度有關(guān),所以視差包含了物體的三維空間信息。通過(guò)視差就可以求得三維空間點(diǎn)到攝像機(jī)的距離,確定三維空間點(diǎn)在世界坐標(biāo)系中的坐標(biāo)。如果視差D可以確定并且已知兩臺(tái)攝像機(jī)之間的基線距離和攝像機(jī)的焦距,很容易計(jì)算出三維空間點(diǎn)W的Z軸坐標(biāo)。另外Z軸坐標(biāo)確定后點(diǎn)W的世界坐標(biāo)X,Y軸坐標(biāo)可用(x1,y1)和(x2,y2)借助透視變換得到,即:這樣,通過(guò)三維空間點(diǎn)在兩臺(tái)攝像機(jī)的成像視差,可求出空間點(diǎn)的三維坐標(biāo)。因此,對(duì)于兩臺(tái)攝像機(jī)平面上的任意一點(diǎn),只要能夠在另一臺(tái)攝像機(jī)平面上找到對(duì)應(yīng)的匹配點(diǎn)(即兩者是空間同一點(diǎn)在兩臺(tái)攝像機(jī)面上的像點(diǎn)),就可以通過(guò)視差確定出該點(diǎn)的三維空間點(diǎn)。(說(shuō)明:對(duì)于上述公式,我們?nèi)绻O(shè)置相機(jī)1為參考世界坐標(biāo)系,則空間三維點(diǎn)的計(jì)算通過(guò)X1,Y1的表達(dá)式進(jìn)行計(jì)算,反之對(duì)于相機(jī)2也是同樣的道理)。個(gè)人理解部分:在上圖,我們選擇左圖像的中心O1為世界坐標(biāo)原點(diǎn)。M表示世界坐標(biāo)系中的一點(diǎn),p1和p2表示該點(diǎn)經(jīng)過(guò)透鏡投影到畫布上的位置。設(shè)p1點(diǎn)為(x1,y1),p2點(diǎn)為(x2,y2),(這里點(diǎn)p1和點(diǎn)p2均是在世界坐標(biāo)系中的坐標(biāo),即相對(duì)于O1點(diǎn)的坐標(biāo),不要為上面的標(biāo)號(hào)所迷糊,切記!因?yàn)槲覀兿旅娴耐茖?dǎo)就是針對(duì)如此的)M點(diǎn)為(X,Y,Z)。我們知道OpenCV坐標(biāo)系中圖中R1和R2為圖像平面的原點(diǎn),即相當(dāng)于p1,p2的參考點(diǎn)的同時(shí)變化。這里,我們知道兩個(gè)圖像分辨率是一樣的,即兩個(gè)圖像的平面是一樣的大小,我們應(yīng)用的相似三角形的知識(shí),故我們只需要確保在列出的比例關(guān)系中,能夠保存長(zhǎng)度是正的就可以了。首先我們要證明一點(diǎn),上圖中直線O1p1和直線MO3是平行的,利用高中所學(xué)的知識(shí):我們知道了O1p1和MO3是平行的,那么就可以知道三角形O1p1D和三角形MO3A相似,又因?yàn)榫€段O1p1和線段MO3的比值等于線段p1C1和線段C1O3的比值,即等于f/Z-f。從上圖我們知道,點(diǎn)p1的x1,y1均小于0。我們現(xiàn)在要列出點(diǎn)p1和點(diǎn)p2的坐標(biāo),以及額外的已知參數(shù)與真實(shí)點(diǎn)M坐標(biāo)之間的關(guān)系。由線段p1D=0-x1,線段O3A=X,那么我們就可以得到如下的一個(gè)公式:同理我們對(duì)于點(diǎn)p1的y1坐標(biāo),也進(jìn)行相似變換。即線段O1D=0-y1,線段MA=Y。那么我們可以得到如下的公式:接下來(lái)我們要求解p2點(diǎn)的坐標(biāo)x2,y2和M點(diǎn)坐標(biāo)之間的關(guān)系,我們同樣的利用三角形相似來(lái)找它們坐標(biāo)之間的關(guān)系,我們同樣可知道三角形O2p2E和三角形MO4A是相似的。那么線段Ep2=x2-B,線段AO4=B-X,那么他們之間的比例還是滿足f/Z-f,得到如下的公式:總上所述,我們得到X,Y,Z坐標(biāo)的計(jì)算公式:為了方便下面的理解,我們附如下圖:我們知道上面的x1,y1,x2,y2的坐標(biāo)均是針對(duì)世界坐標(biāo)原點(diǎn)在O1處的情況,但是我們一般知道的是OpenCV圖像中兩個(gè)點(diǎn)的q1和q2的坐標(biāo),分別為(x11,y11),(x22,y22)。我們就需要尋找x11,y11,x22,y22和x1,y1,x2,y2之間的關(guān)系。我們第一副圖像大小為W*H,W表示OpenCV中X方向的長(zhǎng)度,H表示OpenCV中Y方向的長(zhǎng)度,那么點(diǎn)(W/2,H/2)就近似于圖像的中間,即認(rèn)為是世界坐標(biāo)原點(diǎn)O1,由于分辨率相同,第二幅圖像也有同樣的大小。那么:x1=x11-W/2;y1=H/2-y11;x2-x1=x22-x11+B帶入上述三個(gè)公式得:那么我們,我們規(guī)定上述的f,x11,y11,B,單位均為像素,那么我們就可以得到M點(diǎn)以像素為單位的世界坐標(biāo),然后里面利用像素和毫米的關(guān)系可以得到真實(shí)的三維點(diǎn)的坐標(biāo),當(dāng)然這里的坐標(biāo)是有參考坐標(biāo)系的。再如,你或許可以在網(wǎng)上下載到下面的一篇文章:上述文章中,打問(wèn)號(hào)的部分應(yīng)該是錯(cuò)誤的,所謂的焦點(diǎn)就是光透過(guò)透鏡匯聚的點(diǎn)就稱為焦點(diǎn)。所以上述的三維世界原點(diǎn)的坐標(biāo)應(yīng)該是選了左相機(jī)的透鏡中心,這樣上述公式正好,和我上面推導(dǎo)的相吻合。即L和B是等價(jià)的,由于選擇的參考系,沿著Z方向平移了f距離,所以我公式中的Z-f就是上圖中的Z。還應(yīng)注意上圖中的z和Z是一樣的,書寫錯(cuò)誤而已。我上面推導(dǎo)的計(jì)算Z的公式,我這里為了強(qiáng)調(diào)一下,我重新將其寫下來(lái):我們這里的Z是圖像平面中心到世界三維點(diǎn)的距離。然而我們經(jīng)??吹饺缦碌男问剑荷鲜龉街械腪表示的是攝像機(jī)透鏡中心到世界三維點(diǎn)的距離(也就是過(guò)三維點(diǎn)與相機(jī)平行的平面和相機(jī)平面,兩個(gè)平面之間的距離),這里我們約
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海外工程項(xiàng)目施工人員勞務(wù)派遣與保障協(xié)議
- 外資企業(yè)拉美市場(chǎng)運(yùn)營(yíng)專員職務(wù)聘任與培訓(xùn)合同
- 網(wǎng)絡(luò)內(nèi)容安全審查算法技術(shù)許可及數(shù)據(jù)共享合同
- 數(shù)據(jù)安全忠誠(chéng)度保障協(xié)議及知識(shí)產(chǎn)權(quán)保護(hù)
- 傳染病預(yù)防措施
- 外科護(hù)理胸部損傷
- 護(hù)理安全案例分析
- 2026屆高考語(yǔ)文作文模擬寫作:等風(fēng)與追風(fēng)
- 腫瘤護(hù)士進(jìn)修體系構(gòu)建
- 剖宮產(chǎn)患者的對(duì)癥護(hù)理
- 裂解裂化工藝作業(yè)培訓(xùn)課件
- 工程部管理制度及工程部管理制度(工程公司)
- 基于ZYNQ的時(shí)鐘同步平臺(tái)的設(shè)計(jì)
- 回火爐安全操作規(guī)程
- GB/T 19494.1-2023煤炭機(jī)械化采樣第1部分:采樣方法
- 光纜遷移 施工方案
- 醫(yī)院標(biāo)識(shí)標(biāo)牌采購(gòu)?fù)稑?biāo)方案
- 電動(dòng)扶梯防墜護(hù)欄施工方案
- 視頻監(jiān)控系統(tǒng)驗(yàn)收?qǐng)?bào)告
- 2016年河北省中考數(shù)學(xué)試卷
- 廣東農(nóng)業(yè)農(nóng)村廳所屬事業(yè)單位招聘考試試題2023
評(píng)論
0/150
提交評(píng)論