1. 说明
通常情况下对于图像数据的采集可以放在后端进行,采集到的图像数据如果有需要可以通过通信将数据传输到前端进行显示,这其中需要使用到TCP数据传输协议和QT下的多线程开发技术。QT当中主线程一般是界面层次的,在主线程中执行耗时较长的数据操作,会引起界面的卡顿,可以将耗时事件放在子线程中进行处理。本博文即采用多线程的方式,在主线程中读取摄像头数据并显示在界面上,同时在子线程中将图像数据通过TCP协议发送至服务端进行显示。
效果展示:
tcp图像传输
2. 具体实现(客户端)
2.1 项目结构
在客户端中需要实现对摄像头数据的读取,此文中以一个视频文件代替,使用opencv进行视频的读取,同时需要创建子线程,在其中实现对图像数据的发送。
2.2 客户端tcp代码实现
tcp.h: