近期,入手一台baslerUSB接口的CCD相機,但是貌似之前圖像采集的編程無法調動其攝像頭,在網上搜了一下,大家的說法就是安裝它的SDK文件包,並且調用它內部函數編寫代碼。其實新版的Basle相機驅動可執行文件就已經包含SDK庫。安裝好它的驅動,你可以在你安裝的位置看到下面這兩個文件:
application文件夾主要是寫的是它的協議,這個不是重點,重點的是development這個文件夾,它含有include和lib,這就是opencv調用的庫目錄和附加依賴項,這里邊的sample文件夾含有C語言,c#語言,c++語言的實例代碼,這就主要是按需改寫就可以了。下面的圖就是development文件夾所有內容。

接下來,就需要在你項目里添加庫目錄和依賴項,以及把.lib文件全部移至你安裝opencv中.lib位置(主要針對的是C語言案例,C++則是需要在c++文件夾里的頭文件.h全部移至你程序源文件處),話不多說,現在先給大家編程c++語言的案例,如下圖所示,你完全可以直接運行VC++project文件,新的版本的sdk貌似不需要修改其項目的屬性的。如果你非要自己寫代碼,點開的C++source文件,也可以,不過,不知道為什么就算修改它項目的屬性,添加相應的庫目錄和.lib文件,代碼還是報錯。自己才疏學淺還未探知原因。

這個sdk還是很強大的,它里頭doc文件里邊的pdf詳細介紹的它主要代碼的含義以及運行的流程,整體來說還是不錯,有很多可以學習的地方。

如果你覺得它的講解全是英文,不想看,這將轉載別人的博客,代碼流程還是很清晰的。個人不建議去下載它代碼鏈接,因為你自己的驅動程序都已經有很完整的代碼,沒有什么必要去下載別人的代碼,一方面版本太老合適,另一方面代碼未必能在你的電腦上運行。
http://blog.csdn.net/wenzhou1219/article/details/7543
一般的對於提供硬件編程來說,硬件生產廠家都會提供好SDK使用的手冊和實例。手冊中一般包括安裝和配置流程,一些基本概念的介紹,SDK每個函數使用,SDK使用流程和實例(有些硬件實例直接寫在手冊中,有些會以單獨文件存在,還有的兩者皆有)。對於上位機軟件開發人員來說拿到一個硬件上位機編程任務,首先應該閱讀了解其SDK概念,再按照其介紹的SDK開發流程閱讀其提供的實例,修改相應的實例為自己所用,有不懂的函數查詢一下其用法即可。有些開發人員習慣性的去記其API,這是費時費力的做法,並不推薦。下面主要以實時圖像采集講解Basler相機的PylonC SDK的使用流程。
PylonC SDK的使用的總體流程圖如下:

下面是其中對於不同的工作要求,加載相機對象和卸載相機對象是通用的。而要使用其他模塊,如事件對象時,相應的改為加載事件對象和卸載事件對象,以及使用事件對象完成相關任務即可。編程時一定要對整個流程做好規划,特別是硬件編程時一定留意內存泄露,前面分配的資源一定要在后面釋放。
下面是五個大流程的詳細解析,需要的地方已經加以說明,並注解了需要用到的函數
加載相機對象

卸載相機對象

加載數據流抓取對象

卸載數據流抓取對象

單幀或連續抓圖過程

按照以上介紹的流程即可實現實時圖像采集
