1. 程式人生 > >用opencv使用大恆相機的痛苦經歷

用opencv使用大恆相機的痛苦經歷

做畢業設計需要用到工業相機,之前的IDS需要還了,心想買個便宜點的(畢竟做完畢設就離開實驗室了,太貴不好。。),挑了個國產的相機,大恆的DH-HV3151UC

從到貨那天開始經歷了整整一週的折磨(不過也瞭解了許多相機硬體相關的知識)

但是,不是我不支援國貨,外國貨插上就能用簡直太棒了好不。。。

拿到相機和鏡頭當晚,就迫切得開啟架到試驗檯上了,可是將鏡頭的調焦環擰了一遍,畫面都是黑壓壓一片(對了,首先你得安裝坑爹的驅動、demo,至於為什麼坑爹下文再說。。。),非常鬱悶,就像泡麵都煮開了卻沒有筷子。調節了非常久,結果問了老闆發現是相機支援兩種介面(C/CS),之前選型看引數也注意到不過沒有太重視,原來擰開相機晶片蓋子的時候將轉介面也擰了下來了,擰下來就支援CS口,裝上去就支援C口的相機,兩個介面除了到相機晶片的長度差了5mm,其餘的就沒什麼區別了。

看到清晰的畫面,不由得心想總算可以開展演算法研究了,而真正的大坑才剛剛開始。

先是用opencv的試圖開啟相機(因為之前用過IDS是支援opencv函式的),但是接著就發現根!本!行!不!通!大恆相機需要用到他們的SDK開發程式。好吧,那就用你們的SDK吧,於是又標頭檔案,又連結庫,總算可以用它的第一個函式(獲取裝置總數的),正常!可喜可賀!接著總能開啟相機了吧。抱歉,還是不行。開啟裝置TM給我報錯,說是整數被零給除了,還是在dll裡出的錯。我遍歷了各種辦法,甚至打算反彙編了。。。ORZ。。。後來師兄一句驚醒夢中人,找大恆的人啊!

於是,打給客服,說是總部,給了個技術支援的電話,又打過去,結果通話中。。。過了一會又打過去。。。。還是通話中。。。。第二天早上又試。。。還是。。。還是。。。最後黃天不負有心人。。。終於打通了。。。。發了郵件詳細闡明編譯的各種問題。。。結果到了下午回了幾句話:只支援到win7.。。。

好吧,要換平臺。。。

裝虛擬機器、win7、vs2013、opencv,加上河源的網速,又花了一天。

終於,呼叫SDK成功。

可是事情還沒完,顯示不正常。。。偏紅太厲害了,於是又開始白平衡的學習、調節,還是沒辦法。

又看SDK函式,發現一個可能導致錯誤的引數。。。原來這款相機的陣列順序不是RGB也不是BGR而是。。。你例程怎麼就是。。。GRB了呢。。。

終於正常顯示圖片了。。。。