有無圖像 沒圖像
是否黑屏 黑屏,白屏,花屏
是否亮燈 亮紅燈
是否開機 不開機
故障 設備找不到相機
商品介紹
三、 Basler Pylon工業相機SDK的使用
Pylon庫有C++ .Net等各種封裝版本,一般用C++版本,功能全面效率高,但對于不同接口(GigE USB3.0 CameraLink)的相機必須對應使用不同的類,之間不能通用。
基于GenAPI通用相機抽象接口使用的是Node結構,以字符串形式訪問相機參數,可以統一管理不同接口類型的相機。但效率低,使用不方便。
Pylon高層用C++封裝,形成本地相機對象
如何管理多個相機,靠譜的方法是按相機ID標定順序,需要讀一個配置文件,比如XML或JSON,然而一開始不知道ID,需要先列舉出來。

可以看到相機編程需要做三方面工作:
1.初始化操作
首先初始化相機驅動Com環境,然后遍歷得到當前的相機列表,根據相機ID或List 編號選擇對應相機。
之后連接指定相機,首先設置本次采集的相機參數(幀速、圖像大小、縮放比等),然后是分配和注冊當前DMA隊列,這里有的是用戶完成,有的是SDK完成。
之后先開啟DMA邏輯等待相機采圖,然后使相機開始工作采圖,整個系統就按照之前工作流程運作起來了,許多SDK將“開啟DMA”和“相機開始工作”合并為“開始采集”。
2.結束操作
先停止相機工作再關閉DMA邏輯,許多SDK將“開啟DMA”和“相機開始工作”合并為“結束采集”。
然后清理DMA隊列,和分配時對應,這里有的是用戶完成,有的是SDK完成。
后斷開相機并清理工作環境。

工作流程:
當相機工作時,就是連續的采集-處理-采集-處理...的過程,但是這就存在一個問題,如果采集的速度比處理速度快,處理不過來,怎么辦?在實際中,我們使用隊列來解決這個問題,當前幀沒有處理完,下一幀到來時直接放入隊列等待當前處理完成后再處理它。

二、 工業相機SDK接口使用總結
相機調用 :
我們利用相機采集圖像,首先要對相機進行相關參數設置及控制,這需要對相機的SDK包比較了解,一般相機廠家都會提供相機SDK,其中包含用戶手冊和調用Demo,這些都大大降低了調用門檻,提高了二次開發用戶的效率。目前用過Balser、???、大華等相機,其實都是一個套路,都是按照下面幾個步驟進行的。
1)枚舉設備
2)創建句柄
3)打開設備
4)開始抓圖
5)獲取一幀并保存圖像
6)停止抓圖
7)關閉設備
8)銷毀句柄
相機同步:
若是開發過程中用到雙目或者多目的話,則需要外接同步觸發器或者外部觸發信號,通過相機同步觸發線來實現同步問題。以實際應用過的Basler acA1300-200uc為例,其相機同步觸發線具體類型如下:
1 -—— +12 VDC 紅
2 —— I/O Input 1 黃
3 —— VCC(加電阻) 藍
4 —— I/O Out 1 綠
6 —— DCcam Power GND 黑
0000—— I/O GND 白
-/hbahbeb/-
聯系方式