在雙目視覺中,我們對相機(jī)進(jìn)行標(biāo)定和校正,最終目的是使得兩個相機(jī)的光軸完全平行,這樣才能夠繼續(xù)后續(xù)的深度計算,三維重建。這樣的校正在OPencv中采用的是Bouguet的極線校正的算法。
校正前的左右相機(jī)的光心并不是平行的,兩個光心的連線就叫基線(主鏡頭中心的連線),像平面與基線的交點就是極點,像點與極點所在的直線就是極線,左右極線與基線構(gòu)成的平面就是空間點對應(yīng)的極平面。
校正后,極點在無窮遠(yuǎn)處,兩個相機(jī)的光軸平行。像點在左右圖像上的高度一致。這也就是極線校正的目標(biāo)。校正后做后續(xù)的立體匹配時,只需在同一行上搜索左右像平面的匹配點即可,能使效率大大提高。
Bouguet的方法是一種標(biāo)定立體矯正方法,需要實現(xiàn)對左右相機(jī)進(jìn)行標(biāo)定,是將OPencv求解出來的旋轉(zhuǎn)和平移矩陣分解成左右相機(jī)各旋轉(zhuǎn)一半的旋轉(zhuǎn)和平移矩陣R1,T1與R2,T2。分解的原則是使得,左右圖像重投影造成的畸變最小,左右視圖的共同面積最大。
1、將右圖像平面相對于左圖像平面的旋轉(zhuǎn)矩陣分解成兩個矩陣Rl和Rr,叫做左右相機(jī)的合成旋轉(zhuǎn)矩陣。將左右相機(jī)各旋轉(zhuǎn)一半,使得左右相機(jī)的光軸平行。此時左右相機(jī)的成像面達(dá)到平行,但是基線與成像平面不平行(行不對準(zhǔn))。
此時兩個矩陣滿足以下關(guān)系,通過這個關(guān)系可以看出來rl和rr是正交陣
2、構(gòu)造變換矩陣Rrect使得基線與成像平面平行(行對準(zhǔn))。構(gòu)造的方法是通過右相機(jī)相對于左相機(jī)的偏移矩陣T完成的。
(1) 首先先創(chuàng)建一個由極點el方向開始的旋轉(zhuǎn)矩陣,令主點(cx,cy)為左圖像原點,則極點el的方向就是相機(jī)投影中心之間的平移向量方向.
(2) e2方向與主光軸方向正交,沿圖像方向,與e1垂直,則知e2方向可通過e1與主光軸方向的叉積并歸一化獲得。
(3) 獲取了e1與e2后,e3與e1和e2正交,e3自然就是他們兩個的叉積:
Rrect如下:
(4) 通過合成旋轉(zhuǎn)矩陣與變換矩陣相乘獲得左右相機(jī)的整體旋轉(zhuǎn)矩陣。左右相機(jī)坐標(biāo)系乘以各自的整體旋轉(zhuǎn)矩陣就可使得左右相機(jī)的主光軸平行,且像平面與基線平行。
3. 通過上述的兩個整體旋轉(zhuǎn)矩陣,就能夠得到理想的平行配置的雙目立體系圖像。校正后根據(jù)需要對圖像進(jìn)行裁剪,需重新選擇一個圖像中心,和圖像邊緣從而讓左、右疊加部分最大。
-
圖像
+關(guān)注
關(guān)注
2文章
1094瀏覽量
41239 -
矩陣
+關(guān)注
關(guān)注
1文章
434瀏覽量
35234 -
OpenCV
+關(guān)注
關(guān)注
32文章
642瀏覽量
42861
原文標(biāo)題:雙目圖像標(biāo)定后矯正解析
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于QT+OpenCv的目標(biāo)跟蹤算法實現(xiàn)
OpenCV中自帶組件HighGUI怎么使用?
OpenCV中的BGR格式,在libyuv中對應(yīng)的那個格式?OpenCV中的RGB格式呢?
一種無相機(jī)標(biāo)定的極線校正新方法
opencv 白平衡算法
環(huán)視SAR成像處理中的幾何失真校正算法

在Vivado中如何實現(xiàn)OpenCV設(shè)計
使用Adaboost算法實現(xiàn)車牌檢測在OpenCV上實現(xiàn)的研究分析

如何使用FPGA實現(xiàn)三目立體視覺外極線校正的方法

基于OpenCV如何提取中心線
如何在OpenCV中實現(xiàn)CUDA加速
OpenCV邊緣模板匹配算法原理詳解

評論