基于GigE_Vision协议接收相机发送的数据包显示的图像中出现固定位置黑线的解决

博客讲述了在使用GigE_Vision协议接收相机数据时,图像固定位置出现黑线的问题。问题出现在最后一个Image Data Packet的数据部分大小与其它包不同,导致Buffer填充错误。通过调整代码中计算偏移量的方式解决了该问题,从而修复了图像显示异常。
摘要由CSDN通过智能技术生成

问题描述:通过Stream Channel接收GVSP Image 数据包并显示图像,利用一个线程一直接收GVSP包,并将收到到的Image数据包利用packetid放入缓冲区Buffer中,

收齐数据报之后利用Buffer来显示图像。结果显示的图像在固定位置出现一条前半部分黑后半部分灰白的线。

将图像放大观察,可发现,有右半部分接连左半部分的一条线,与真实图像不符合。

问题分析:黑线区域为(1704,1780)-(2447,1780)(0,1781)-(527,1781),总像素数为(2447-1704+1)+(527-0+1)= 1272,调试发现为最后一个Image Data Packet的数据部分大小,之前的Image数据包大小相等均为1500(Stream_Channel_Packet_Size),数据部分均为1464。于是找出问题所在,最后一个数据包放入Buffer中的偏移offset出错。于是将代码进行修改:

 offset = (packetid-1)*(len-8);
 memmove(Buffer+offset,buf+8,len-8);

修改为:

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值