Dalsa相机图像丢帧可能存在的原因
1、硬件原因
(1)硬件主要涉及 线和 卡的选择,Dalsa相机最好选择千兆 线和千兆 卡。若一台PC需要连接多个相机,最好添加对应个数的 卡;
(2) 卡配置:对应 卡需要进行配置,配置方法如下所示:
①打开“ 络连接”,选择对应 卡,右键选择“属性”;
②选择“配置”
③选择“高级”,配置“巨帧数据包”,选择最大(9014字节);“速度和双工”,选择最大(1.0 Gbps全双工)。
至此,和硬件相关的配置已经结束,如果能解决图像丢帧的问题,即可忽略第二步。若还没有解决,可能还与软件(代码)有关,代码主要在于抓图方式和取图方式。
2、软件原因
本人使用的是官方MFC-SDK,需要实现的功能为:当收到触发信 时,获取相机当前帧图像,并对该图像进行图像处理操作。最开始使用的方法为,开启软件后,持续获取流数据,即调用Grab()函数开始抓图,当收到触发信 时,直接从缓冲区(m_Buffers)中取数据转换为Mat图像,然后进行后续处理,结果发现,此方法会存在丢帧的情况。
后通过查看相机文档及相关资料得知,当相机得到一帧完整数据时,会自动调用回调函数(XferCallback),回调函数结束时,说明获取了一张完整的图像,故选用单张抓图Snap()+回调函数内获取图像的方式,最终解决了图像丢帧的问题。
主要代码部分展示:
头文件主要变量及函数定义:
初始化OnInitDialog()函数部分代码:
回调XferCallback()函数:
某函数中抓取图像:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!