有無圖像沒圖像
是否黑屏黑屏,白屏,花屏
是否亮燈亮紅燈
是否開機不開機
故障設備找不到相機
編程模型和流程
對于相機來說,常見編程時我們關注三個對象——相機對象、采集對象、參數對象。
相機對象(Camera Object):負責相機的連接、斷開等工作。
采集對象(Grab Streamer):負責相機的采集隊列分配、相機單幀、連續采集。
參數對象(Parameter Object):負責相機參數的設置。
不同的SDK可能安排不一樣,一般來說要不是三種對象的功能合并到“相機對象”中,要不是分為三種對象,其實采集對象和參數對象都是在“相機對象”上封裝而來。
可以看到相機編程需要做三方面工作:
1.初始化操作
先初始化相機驅動Com環境,然后遍歷得到當前的相機列表,根據相機ID或List 編號選擇對應相機。
之后連接相機,先設置本次采集的相機參數(幀速、圖像大小、縮放比等),然后是分配和注冊當前DMA隊列,這里有的是用戶完成,有的是SDK完成。
之后先開啟DMA邏輯等待相機采圖,然后使相機開始工作采圖,整個系統就按照之前工作流程運作起來了,許多SDK將“開啟DMA”和“相機開始工作”合并為“開始采集”。
2.結束操作
先停止相機工作再關閉DMA邏輯,許多SDK將“開啟DMA”和“相機開始工作”合并為“結束采集”。
然后清理DMA隊列,和分配時對應,這里有的是用戶完成,有的是SDK完成。
后斷開相機并清理工作環境。
1、走在**的智能理念——無人充電機器人
ALSONTECH(埃爾森智能科技)于2018年推出**套機器人3D視覺引導無人快速充電系統,將智能充電機器人變成現實。
該系統采用Basler集小巧機身和功能于一體的工業相機,搭建出3D視覺作為機器人的“雙眼”,幫助機器人定位充電端口,之后該系統會引導充電體自動實現快充操作,結束后機器人甚至可以自動關閉充電蓋。借助無人充電機器人,停車場可實現高度智能自動化。從車輛停至充電站到充電完成,整個過程駕駛員*進行任何干預操作,有效縮短等待時間,省時省力。
隨著無人駕駛技術在**范圍內推廣應用,車輛使用方式面臨著巨大變革。該項目著眼于汽車工業發展的未來,以“人工智能”為**理念,采用較加的充電方式為車輛提供能源**,助力無人駕駛行業的產品升級。
下面是其中對于不同的工作要求,加載相機對象和卸載相機對象是通用的。而要使用其他模塊,如事件對象時,相應的改為加載事件對象和卸載事件對象,以及使用事件對象完成相關任務即可。編程時一定要對整個流程做好規劃,特別是硬件編程時一定留意內存泄露,**分配的資源一定要在后面釋放。
下面是五個大流程的詳細解析,需要的地方已經加以說明,并注解了需要用到的函數
加載相機對象:
卸載相機對象:
加載數據流抓取對象:
卸載數據流抓取對象:
單幀或連續抓圖過程:
按照以上介紹的流程即可實現實時圖像采集:
很多人問我要源代碼,翻了以前的程序文件夾找到了這個程序,演示了利用Pylon SDK進行相機采集的過程,使用MIL完成界面顯示,采集部分封裝成了類,可以直接重用。測試相機為Basler相機。注意Pylon僅完成Raw Data的采集,使用MIL的MbufPut完成圖像數據的重組,然后MIL自動顯示。
http://www.igfw.cc