苏州技优电子技术服务有限公司
5
򈊡򈊨򈊡򈊡򈊢򈊦򈊠򈊣򈊤򈊢򈊠

公司产品

Company Product
  • 长春Basler巴斯勒机器视觉维修

    来源:苏州技优电子技术服务有限公司 时间:2024-12-11 13:17:14 [举报]

    下面是其中对于不同的工作要求,加载相机对象和卸载相机对象是通用的。而要使用其他模块,如事件对象时,相应的改为加载事件对象和卸载事件对象,以及使用事件对象完成相关任务即可。编程时一定要对整个流程做好规划,特别是硬件编程时一定留意内存泄露,前面分配的资源一定要在后面释放。
    下面是五个大流程的详细解析,需要的地方已经加以说明,并注解了需要用到的函数
    加载相机对象:
    卸载相机对象:
    加载数据流抓取对象:
    卸载数据流抓取对象:
    单帧或连续抓图过程:
    按照以上介绍的流程即可实现实时图像采集:
    很多人问我要源代码,翻了以前的程序文件夹找到了这个程序,演示了利用Pylon SDK进行相机采集的过程,使用MIL完成界面显示,采集部分封装成了类,可以直接重用。测试相机为Basler相机。注意Pylon仅完成Raw Data的采集,使用MIL的MbufPut完成图像数据的重组,然后MIL自动显示。

    工业相机是机器视觉系统中的一个关键组件,相比于市面上普通相机来说,具有更高的传输力、抗干扰力以及稳定的成像能力。它由两大基本部件组成:图像感光芯片和数字化的数据接口。
    Basler 作为计算机视觉行业的标准制定者,一直致力于为客户提供一站式解决方案。BASLER工业相机广泛应用在人工智能设备中,持续赋能智能制造,随着智能设备产品的增多,后期使用上坏的可能也很多,坏了就淘汰扔掉吗?对于现在的制造成本来说,对工业相机进行维修是非常理想的选择,不仅缩短设备维修的时间,也大大节省了设备购买的成本,对于深耕视觉设备工业相机维修10年以上的技优电子来说,不仅交期快,修复率也高。

    一、工业相机编程模型和流程
    不同的工业相机提供不同的编程接口(SDK),尽管不同接口不同相机间编程接口各不相同,他们实际的API结构和编程模型很相似,了解了这些再对工业相机编程就很简单了。
    DMA技术:
    DMA是一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
    对于工业相机来说,当CMOS或CCD芯片曝光然后将数据转到相机缓存后,这时候DMA会负责将缓存中数据保存到硬盘上位置,正好满足相机高速大数据的传输。一般都会使用DMA来完成实时的数据采集和保存。
    多数时候,DMA控制器存在各种接口的图像采集卡中,包括1394/GigE/USB/Camera Link等,这些采集卡有自己的时间控制单元完成和相机曝光的同步,并控制DMA的存取行为。

    工作流程:
    当相机工作时,就是连续的采集-处理-采集-处理...的过程,但是这就存在一个问题,如果采集的速度比处理速度快,处理不过来,怎么办?在实际中,我们使用队列来解决这个问题,当前帧没有处理完,下一帧到来时直接放入队列等待当前处理完成后再处理它。

    这里使用三个队列完成采集和处理同步。
    DMA队列:
    当CMOS或CCD芯片曝光然后将数据转到相机缓存后,这时候DMA会负责将缓存中数据写入到“DMA队列”头Buffer中。
    准备队列:
    一旦“DMA队列”头Buffer被填充完成,会被加到“准备队列”尾后,这时候会发送中断通知用户程序:当前又有一帧数据采集完成,您看着处理吧。
    处理队列:
    当用户接收到中断会自动跳转到中断函数中,使用GetFrame拿取“准备队列”头Buffer,然后加到当前用户程序“处理队列”尾,用户程序从“处理队列”头拿取Buffer处理完成后使用PutFrame将Buffer再添加到原始的“DMA队列”尾。

    需要说明如下几点:
    1.这里的初始队列为1-10,都是初始分配为DMA队列的,这个内存分配和释放过程有的SDK是自己负责的,有的则需要用户自己分配和释放,SDK只负责托管使用。
    2.一般开始注册一个中断处理函数,当“准备队列”填充完成会自动跳转到中断函数中,借此完成同步操作。也可以是用户自己维护同步结构体,使用查询和等待的方式判断“准备队列”头是否填充完成,是否该用户程序获取数据和处理了。
    3.如果用户处理任务非常简单,可以去掉“处理队列”,每次直接GetFrame->处理->PutFrame。如果用户处理任务比较复杂而不希望出现丢帧的现象,则需要用户使用“处理队列”来保存所有可用的Buffer。
    4.这里队列也只是能够解决处理速度比采集速度慢少许的情况,主要是对不同处理速度做平均来采集和处理同步。如果每一帧的处理时间太长,这时候“DMA队列” Buffer全部转移到“处理队列” Buffer,就会出现异常情况,这时不同的相机会有不同的处理方法。

    标签:丽水Basler巴斯勒工业摄像机维修,郑州Basler巴斯勒面阵相机维修,郑州Basler巴斯勒维修,惠州Basler巴斯勒机器视觉维修

    上一条: 下一条:漳州Basler巴斯勒线阵相机维修

公司信息

  • 苏州技优电子技术服务有限公司
  • 手机 已认证
    个人已认证
    企业已认证
    微信已认证
    天眼查已核实
  • 1天
  • 技优电子
  • 私营有限责任公司
  • 2014-02-19
  • CCD工业相机维修,触摸屏控制器维修
  • 江苏 苏州 江苏省苏州吴中区甪直镇甪胜路

联系方式

皮舞武

򈊡򈊨򈊡򈊡򈊢򈊦򈊠򈊣򈊤򈊢򈊠

򈊡򈊨򈊡򈊡򈊢򈊦򈊠򈊣򈊤򈊢򈊠

信息分类

  • > 工业CCD相机维修
  • > 触摸屏维修
  • > 视觉控制器维修
  • > 伺服驱动器维修
关于我们
企业介绍
供应产品
联系我们
名称:苏州技优电子技术服务有限公司
电话:18112603420
手机:򈊡򈊨򈊡򈊡򈊢򈊦򈊠򈊣򈊤򈊢򈊠
地址:江苏省苏州吴中区甪直镇甪胜路30-12号
主营产品
CCD工业相机维修,触摸屏控制器维修,电源变频器维修,机器视觉控制器维修

点击获取商铺二维码

管理商铺

收缩
  • 欢迎来到我们网站

    • 在线客服
    • 微信在线
    • 手机咨询
    • 򈊡򈊨򈊡򈊡򈊢򈊦򈊠򈊣򈊤򈊢򈊠
    • 立即留言
留言询价
×