编程模型和流程
对于相机来说,常见编程时我们关注三个对象——相机对象、采集对象、参数对象。
相机对象(Camera Object):负责相机的连接、断开等工作。
采集对象(Grab Streamer):负责相机的采集队列分配、相机单帧、连续采集。
参数对象(Parameter Object):负责相机参数的设置。
不同的SDK可能安排不一样,一般来说要不是三种对象的功能合并到“相机对象”中,要不是分为三种对象,其实采集对象和参数对象都是在“相机对象”上封装而来。
智能相机一般由图像采集单元、图像处理单元、图像处理软件、网络通信装置等构成,各部分的功能如下:
1.图像采集单元:在智能相机中,图像采集单元相当于普通意义上的CCD/CMOS相机和图像采集卡。它将光学图像转换为模拟/数字图像,并输出至图像处理单元。
2.图像处理单元:图像处理单元类似于图像采集、处理卡。它可对图像采集单元的图像数据进行实时的存储,并在图像处理软件的支持下进行图像处理。
3、图像处理软件:图像处理软件主要在图像处理单元硬件环境的支持下,完成图像处理功能。如几何边缘的提取、Blob、灰度直方图、OCV/OVR、简单的定位和搜索等。在智能相机中,以上算法都封装成固定的模块,用户可直接应用而*编程。
4、网络通信装置:网络通信装置的智能相机的重要组成部分,主要完成控制信息、图像数据的通信任务。智能相机一般均内置以太信装置,并支持多种标准网络和总线协议,从而使多台智能相机构成较大的机器视觉系统。
机器视觉智能相机与工业相机区别,简言之:智能相机是一种高度集成化的微小型机器视觉系统;而工业相机是机器视觉系统的组成部分之一
工业相机中断响应如何操作?
当相机一帧采集完成后,自动跳转进入中断回调函数,这里分了两种中断回调函数。
种为简单的取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、欧姆龙、伦茨、松下、富士、施耐德、法那科、安川、台达、东芝、三菱、百格拉等。公司客户行业涉及机械制造、注塑业、橡胶、电路板制造工厂、印刷、电梯、汽车生产、发电、电镀、、食品、包装等。公司秉承“顾客至上,锐意进取”的经营理念,坚持“客户”的原则为广大客户提供的服务。欢迎惠顾!