- 軟件大(dà)小:304KB
- 軟件語言:中(zhōng)文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:免費軟件 / 其他行業
- 更新時間:2017-05-23 10:28
- 運行環境:WinAll, WinXP, Win7
- 軟件等級:
- 軟件廠(chǎng)商:
- 官方網站:暫無
6.83M/中(zhōng)文/0.9
2.21M/中文/0.0
856KB/中文/10.0
120KB/中文/0.0
8.73M/中文/10.0
matlab相機標定工具箱是眾多網友正在(zài)尋(xún)找的一款工具箱軟件,該軟(ruǎn)件主要針對MATLAB使用者打造,通過工(gōng)具箱用戶可以解決使用過程中遇到的各種問題,需要的朋友歡迎來(lái)綠色資源網下載!
用VS2012+OpenCV2.4.6寫的雙目標定的程序(xù)(其實就是跑(pǎo)的Samples),實驗結果一直很不理想,查看很多Blog,說可以先用MATLAB標定工具箱獲得extrinsics和intrinsics矩陣,然後作為輸入參數再讀到OpenCV的stereoRectify函數,進而(ér)就可以Match了。這裏,分享一(yī)下我做MATLAB標定的過程:
一、環境配置
1.解壓(yā)MATLAB標(biāo)定工具箱至某個文件夾,默認為:TOOLBOX_calib,將之(zhī)存放在MATLAB\R2010b\toolbox下(xià)(個人喜歡,也(yě)可以放其他位置)。
2.運(yùn)行Matlab並添加文(wén)件夾TOOLBOX_calib的位置到matlab路徑path中,具體操作為:File->Set Path->Add Folder To Path,然後找到剛剛存放的文件(jiàn)夾TOOLBOX_calib,save一下就OK了。
二、文件(jiàn)配置
將所有要標定的棋盤圖放到文件夾TOOLBOX_calib裏.m文件所在的目錄下(個人喜歡將(jiāng)左(zuǒ)右相(xiàng)機(jī)的圖片命名為left01.jpg和(hé)right01.jpg等的形式,看著舒服,也和後麵要講的標定結果保(bǎo)存對應起來(lái)),OK,萬事(shì)俱備,準(zhǔn)備開動了。
三、單(dān)目標定
1.在Matlab命令行(háng)窗口中輸入calib_gui
2.選擇Standard
3.點擊Image names,命令行窗口會提示你輸入(rù)圖片的basename以及圖片的格式(比如(rú)你圖片(piàn)文件名是right01, right02, …, right12,basename就是right,圖片格式如:jpg),然後Matlab會自(zì)動幫你(nǐ)讀(dú)入這些圖片
4.然後再回到主控製界麵(miàn),點擊Extract grid corners,提取每幅圖的角點。點(diǎn)擊完後,命令行會出現如下提示,主要是讓你輸入棋盤(pán)角點搜索(suǒ)窗口的大小。如(rú)果窗口定大一點的話提取角點會比較方便(biàn)點,即便點得偏離了(le)也能找到,但也要注意不能大過一個方格的大小。這些選項,都隻要敲回車選用默認設置(zhì)就可以了。
5.繼上步Enter敲完後,跳出第一幅棋盤格圖(tú),按順時針或是逆(nì)時針方向分別(bié)點選棋(qí)盤格的最外(wài)麵的四(sì)個(gè)內格(gé)點,程序會(huì)自動檢測出其餘的角點(diǎn)。
6.在(zài)選完四個(gè)角點後,程序會在命令行窗口提示你輸入標定板棋盤(pán)的size,輸入你棋盤格的實際大小就行,比如我的棋盤格是(shì)24mm,就輸入24。這步事實上相當關鍵,它定義(yì)了空間的尺度,如(rú)果要對物體進行測量的(de)話,這步是必(bì)須的。Ender後同時得到角點檢測結果圖。
7.繼續命令行窗口(kǒu)按Ender選(xuǎn)擇默認項,跳出(chū)新的標定板圖像,同樣的方法,如(rú)此反複,檢測角點完(wán)12幅左(zuǒ)視圖。
8.檢測完所有的圖像後,點擊Calibration,開始攝像頭標定。
9.標定完成後,可以進行各(gè)種結果的可視化觀(guān)察(chá)。由Show Extrinsic得的結果圖可見相機與標定板的距離(lí)約為1000mm左右,且其中各種顏色標定板對(duì)應Analyse Error的結果圖的(de)各種誤(wù)差結果,其中,紅色的(對(duì)應第2幅標定板圖像(xiàng))的誤(wù)差較大,部分角點提取有問題(這是當時選角點時我故(gù)意選得偏離(lí)了一些,驗證一下)。
11.左攝像頭標定的方法與右攝像(xiàng)頭(tóu)相同,生成的Calib_Result.mat之後,將其改名為Calib_Result_left.mat就可以了。
四、雙目標定
1.左右攝像頭都標定完成之後,就可以開始立體標定(dìng)了。在Matlab命令行中鍵入(rù)stereo_gui啟動(dòng)立體標定麵板。
2.點擊Load left and right calibration files,在命令行(háng)窗口中會提示你分(fèn)別填寫左右自標定的結果,如果你按上(shàng)麵的文件名(míng)保存方式的話,直接Ender選擇默認(rèn)的文件名(Calib_Result_left.mat和Calib_Result_right.mat),或是填寫(xiě)你自己保存的文件名。
3.Load成功(gōng)後,就可以開始Run stereo calibration了,run之(zhī)後的(de)結果如下圖所示,左右攝(shè)像頭的參數都做了修正,並且也求出(chū)了兩個攝像頭(tóu)之間的旋轉和平移關係向量(om和T)。從結果可以看出左(zuǒ)右相機的Focal Length相差還是蠻大的,不知這對後續(xù)的視差圖等計算影響如何(hé)(怎麽調整兩個攝像機的(de)焦距相同也(yě)是個問題(tí))。
4.run成(chéng)功後,就(jiù)可以看標定的結果了。同樣可(kě)以直觀的看出相機的(de)相對位置相差很大。
圖4.圖3的俯視圖
5.還可以通(tōng)過Rectify the calibration images按鈕,得到糾正後的所有棋盤格圖片,可以直接讀入OpenCV中進行Match了。當然,你需要對其他物體或(huò)是想(xiǎng)實時(shí)得到視差(chà)圖,還得將互標定結果寫到OpenCV函數(shù)調用時支持的格式。
五、問題探討
1.相機的焦距是否應該保持一(yī)致?
答:答案是應該(gāi)肯定的。因為在(zài)後續的視差圖轉換為(wéi)三維(wéi)圖時的Q矩陣隻有一個f值。所以必須要求至少焦距相近。而且立體成像的三角測量(Learning OpenCV書(shū)中提到)的前提假(jiǎ)設就是fl=fr。不知(zhī)道理解的對不對。
2.怎麽調整兩個攝像機的焦(jiāo)距相同?
答:a.離兩個相機相同遠處(chù)放置標定板(可以將兩(liǎng)個相機(jī)放置在一(yī)起以打到這個效果),分別調節兩個相機的焦(jiāo)距,使得兩(liǎng)個畫麵的(de)清晰度相(xiàng)似。(這是我(wǒ)谘詢大恒圖像的技術支持的結果)
b.我覺得(dé)這樣肯定還是不行,可以再微調,就是標定一(yī)次得一個焦距,再微調一下,再測,這樣就會很麻煩。
不知有沒有更好(hǎo)的方法。看了(le)很多Blog,沒看到涉及這塊的,不(bú)知道大(dà)家都是怎麽(me)解決(jué)的。
請描述您所遇到的錯誤,我們將盡快予以(yǐ)修正,謝謝!
*必填項,請輸入內容