QT調用balser相機SDK

1.連接相機

        Generic Interface for Cameras。這是爲了建立一個統一的API接口,這個接口可以用來操作GigE、USB、Camera link類型的工業相機。就是說先要看清楚所使用的工業相機是什麼接口的。

       如果相機連上了,那怎麼知道這個相機的參數呢?這裏是通過GenlCam中的GenApi模塊來表示的,它用來表示相機的功能和控制方法。這個模塊被解析成GenApi Node Maps,相機的每個具體的參數對應一個Node。

       參數對應上了之後又如何將相機打開呢?還有有的時候項目中需要用到多個相機,怎麼知道這個相機是所需要連接的相機呢?這裏需要GenCam的另外一個模塊GenTL,用它發現枚舉相機以及獲取圖像。由於接口類無法直接生成,需要用傳輸層工廠來獲取。

CTlFactory& TlFactory = CTlFactory::GetInstance();
ITransportLayer* pTl = TlFactory.CreateTl( CBaslerGigECamera::DeviceClass() );

如果要枚舉相機,則用下面的代碼,其中“BaslerGigE”爲相機的DeviceClass,可以在前面獲取相機的參數中得到

CTlFactory& TlFactory = CTlFactory::GetInstance();

ITransportLayer * pTl = TlFactory.CreateTl("BaslerGigE");

DeviceInfoList_t lstDevices;

 

2.獲取圖像

        連上了相機還需要獲取圖片,這裏用的抓圖的函數是StartGrabbing(),具體的抓圖方式有One by One Grab Strategy、

Latest Image Only Grab Strategy、Latest Images Strategy、Upcoming Image Grab Strategy。第一種是獲取最早在隊列中的函數,第二種是獲取最新的一幅,第三種也是最新的但是隊列滿了會清除舊的圖像,第四種要CInstantCamera::RetrieveResult() 調用才能採集,

eg: mBaslerCamera.StartGrabbing(GrabStrategy_LatestImageOnly);

 

 

未完待續.......

https://blog.csdn.net/liyuanbhu/article/details/74613768

https://blog.csdn.net/y363703390/article/details/79077735

https://so.csdn.net/so/search/s.do?q=basler&t=blog&u=liyuanbhu

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章