雙目視覺的實驗平台會包括軟體和硬體兩部分。
這裡只是考慮了軟體的這一部分。
對於雙目視覺有攝像機標定,找匹配點,最後是雙目視覺的演算法。為了驗證雙目視覺的演算法當然是要搭建一個軟體的平台的,就是即時的捕捉視頻流,然後,即時的用雙目視覺的演算法進行處理,得到具體的結果(一般也就是用於測距,比如說某運動物體的距離等等)。
由於,將來也許會把雙目視覺中的演算法移植到另一個平台上,所以,這個用於雙目視覺實驗程式的架構的設計也要考慮到這一點。
這是一個基於對話方塊的程式。整個程式大致分為三大部分。一個部分是用於兩個usb網路攝影機視頻流的捕捉。一部分是雙目視覺的演算法部分。還有一部分是用於多線程的同步控制。除了對話方塊這個自動產生的類以外,還有,三個類在這個程式中出現。其中有兩個類是用於網路攝影機的視頻流映像的截取的(一個是filter graph的建立,一個是用於在時的回調設定),一個類用於實現雙目視覺演算法。
在這個程式的編寫過程中,在網路攝影機的映像捕捉上用到了directshow。能在一個星期內把這個程式編寫出來,我覺的以前的我是不敢想像的,也許是壓力下必有勇夫,也許也有以前的積累在裡面。這個程式架構的編寫,痛點在於兩個網路攝影機同時捕捉映像,即時處理,還有需要考慮將來為了移植和演算法編寫的方便,在程式架構上的設計要考慮很多的東西,在程式的架構上,我想,我做得不太好,雖然,現在也能比較的方便的進行演算法的編寫和移植的了。希望將來能好好看看設計模式這方面的書籍。
在使用directshow編寫相機擷取視頻流並截取映像時,參照了不少微軟的例子程式。現在這個程式還有一個小小的問題,就是還是不能獲得影像處理的幀率,在這一點上,等這個星期過後,我會好好看看的,應該是可以解決的。這個星期應該主要是看影像處理的演算法的了,否則,也許會不能按時完成任務。
還有,因為影像處理和電腦視覺的演算法還沒有做好,但是,對這個程式的架構的測試還是需要的,所以,我就讓儲存bmp圖片代替的雙目視覺的演算法,結果實驗是成功的(能連續儲存很多幀bmp圖片,當然,是在我需要)