基于GigE_Vision协议接收相机发送的数据包显示的图像中出现固定位置黑线的解决
来源:互联网 发布:opencv python 安装 编辑:程序博客网 时间:2024/05/18 02:27
问题描述:通过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);
修改为:
//UDP头8字节,IP头20字节,则标准len为Stream_Channel_Packet_Size-28if(len == Stream_Channel_Packet_Size-28){ offset = (packetid-1)*(len-8);}else{ offset = (packetid-1)*(Stream_Channel_Packet_Size-28-8);} memmove(theApp.buffer+offset,buf+8,len-8);问题得到解决。
0 0
- 基于GigE_Vision协议接收相机发送的数据包显示的图像中出现固定位置黑线的解决
- 解决ios7中navigationbar位置显示不固定的问题
- contiki 中数据包的接收与发送流程
- contiki 中数据包的接收与发送流程
- 发送/接收数据包与发送/接收字节的区别.
- 网卡接收和发送数据包的过程
- 网卡接收和发送数据包的过程
- 网卡接收和发送数据包的过程
- 网卡接收和发送数据包的过程
- 网卡驱动的数据包发送接收
- 网卡接收和发送数据包的过程
- 基于TCP协议的发送和接收端
- 基于UDP协议的接收和发送实验
- 网络连接状态显示发送和接收的数据包有几千万上亿字节!!急!
- 解决NGUI中sprite的边缘会出现黑线的问题
- ActivityGroup出现黑线的困惑
- 广播数据包的接收
- 如何解决cocos2d-x显示瓦片地图黑线的问题
- 读 《周爱民--大道之简》 笔记
- NSOperation自定义
- SQL Server系列(4) -- T-SQL编程
- 第13周项目1Dijkstra算法的验证
- LintCode_第k大元素
- 基于GigE_Vision协议接收相机发送的数据包显示的图像中出现固定位置黑线的解决
- 传智播客Java学习路线图
- 时间复杂度和空间复杂度详解
- 【第13周 项目1 - Prim算法的验证】
- 第十三周项目2-Kruskal算法的验证
- 第十二周项目4 判断顶点u到v是否有简单路径
- Android自定义通知布局Notification,点击Notification导航切换回原Activity
- linker command failed with exit code 1 (use -v to see invocation)
- ubuntu15.04下搭建Ice3.4.1开发环境