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

你可能感兴趣的:(项目笔记)