有无图像没图像
是否黑屏黑屏,白屏,花屏
是否亮灯亮红灯
是否开机不开机
故障设备找不到相机
下面是其中对于不同的工作要求,加载相机对象和卸载相机对象是通用的。而要使用其他模块,如事件对象时,相应的改为加载事件对象和卸载事件对象,以及使用事件对象完成相关任务即可。编程时一定要对整个流程做好规划,特别是硬件编程时一定留意内存泄露,前面分配的资源一定要在后面释放。
下面是五个大流程的详细解析,需要的地方已经加以说明,并注解了需要用到的函数
加载相机对象:
卸载相机对象:
加载数据流抓取对象:
卸载数据流抓取对象:
单帧或连续抓图过程:
按照以上介绍的流程即可实现实时图像采集:
很多人问我要源代码,翻了以前的程序文件夹找到了这个程序,演示了利用Pylon SDK进行相机采集的过程,使用MIL完成界面显示,采集部分封装成了类,可以直接重用。测试相机为Basler相机。注意Pylon仅完成Raw Data的采集,使用MIL的MbufPut完成图像数据的重组,然后MIL自动显示。
1、走在前端的智能理念——无人充电机器人
ALSONTECH(埃尔森智能科技)于2018年推出全球套机器人3D视觉引导无人快速充电系统,将智能充电机器人变成现实。
该系统采用Basler集小巧机身和功能于一体的工业相机,搭建出3D视觉作为机器人的“双眼”,帮助机器人定位充电端口,之后该系统会引导充电体自动实现快充操作,结束后机器人甚至可以自动关闭充电盖。借助无人充电机器人,停车场可实现高度智能自动化。从车辆停至充电站到充电完成,整个过程驾驶员无需进行任何干预操作,有效缩短等待时间,省时省力。
随着无人驾驶技术在全球范围内推广应用,车辆使用方式面临着巨大变革。该项目着眼于汽车工业发展的未来,以“人工智能”为核心理念,采用更加的充电方式为车辆提供能源**,助力无人驾驶行业的产品升级。
这里使用三个队列完成采集和处理同步。
DMA队列:
当CMOS或CCD芯片曝光然后将数据转到相机缓存后,这时候DMA会负责将缓存中数据写入到“DMA队列”头Buffer中。
准备队列:
一旦“DMA队列”头Buffer被填充完成,会被加到“准备队列”尾后,这时候会发送中断通知用户程序:当前又有一帧数据采集完成,您看着处理吧。
处理队列:
当用户接收到中断会自动跳转到中断函数中,使用GetFrame拿取“准备队列”头Buffer,然后加到当前用户程序“处理队列”尾,用户程序从“处理队列”头拿取Buffer处理完成后使用PutFrame将Buffer再添加到原始的“DMA队列”尾。
1.工业相机编程模型和流程
2.工业相机SDK接口使用总结
3.Basler Pylon工业相机SDK的使用
4.Pylon 以实时图像采集讲解PylonC SDK使用流程
5.关于使用维视工业相机 SDK 采集图像的问题
6.工业相机SDK之opencv二次开发
http://www.dianlubanweixiu.cn