如图,每个相机可能有不同的流采集器(Grab Streamer)或同一接口上安装了多个相机(也对应多个流采集器),对应多个通道(Channel)。对每个通道来说,在实际采集时数据传输实际上是拆分成如图的数据包(Packet) RawData形式传递的,内存中存储形式为一维数组,在每一帧图像的起始存在不同的标识表明一帧的开始和结束,每一个Packet都有标识表明当前所属的通道。为了显示图像,用户程序需要重新将一维数组数据拼装成图像形式,这一过程由用户完成,通常可借助OpenCV或MIL等图像处理包完成该操作。
Basler Pylon工业相机SDK的使用
Pylon库有C++ .Net等各种封装版本,一般用C++版本,功能全面效率高,但对于不同接口(GigE USB3.0 CameraLink)的相机必须对应使用不同的类,之间不能通用。
基于GenAPI通用相机抽象接口使用的是Node结构,以字符串形式访问相机参数,可以统一管理不同接口类型的相机。但效率低,使用不方便。
Pylon高层用C++封装,形成本地相机对象
如何管理多个相机,靠谱的方法是按相机ID标定顺序,需要读一个配置文件,比如XML或JSON,然而一开始不知道ID,需要先列举出来。
工业相机中断响应如何操作?
当相机一帧采集完成后,自动跳转进入中断回调函数,这里分了两种中断回调函数。
种为简单的取Buffer->处理->放回。
*二种结合Windows的消息队列,在此处再给一个“处理队列”,给处理一个缓冲时间。
这里的处理包括常见的图像处理、计算和显示及RawData拼装为图像等用到Buffer的地方。
**也说过,常用的是中断响应处理,除此之外,自己去查询Buffer填充状态并作相关同步操作在某些场合也会用到,这个请查询不同相机SDK给出的同步方案。
差不多所有的工业相机SDK都是这样的编程模型和流程,AVT 1394相机和Basler Camera Link相机和AVT GigE相机相关代码在笔者网站可下载,还有之前讲的Basler Pylon SDK相机编程,他们基本流程都是一样,恕不详述!
1.工业相机编程模型和流程
2.工业相机SDK接口使用总结
3.Basler Pylon工业相机SDK的使用
4.Pylon 以实时图像采集讲解PylonC SDK使用流程
5.关于使用维视工业相机 SDK 采集图像的问题
6.工业相机SDK之opencv二次开发
苏州技优电子技术服务有限公司承接的维修设备有:各工业相机维修,CCD相机维修,工业摄像机维修,CCD摄像机维修,伺服驱动器维修、变频器维修、电源维修、工控主板、驱动板、接口板、信号处理板、温度控制仪器、数控系列各种控制板、工控机、注塑机CPU板、人机界面、温度板、位置板、比例板、放大板、比例阀、注塑机机械手主板、操作盒等自动化设备控制单元维修。公司拥有的电路板维修测试仪,维修技术团队成员都具备10+年以上设备维修实战经验,设备修复率高、维修交期短、价格低、*原理图。主要维修的有BALSER、teli、cognex、西门子、ABB、欧姆龙、伦茨、松下、富士、施耐德、法那科、安川、台达、东芝、三菱、百格拉等。公司客户行业涉及机械制造、注塑业、橡胶、电路板制造工厂、印刷、电梯、汽车生产、发电、电镀、、食品、包装等。公司秉承“顾客至上,锐意进取”的经营理念,坚持“客户”的原则为广大客户提供的服务。欢迎惠顾!