项目名称:工业钻孔全景成像与数据采集系统
项目角色:C++/Qt 客户端开发工程师
技术栈: C++17、Qt 5、OpenCV、FFmpeg、OpenGL/OpenGL ES、Android JNI、MediaCodec、libyuv、TCP/IP、串口通信、QThread
项目描述:
面向工业钻孔检测设备开发的 Windows/Android 双平台客户端,负责接收井下摄像头视频及编码器、电子罗盘等传感器数据,对环形图像进行实时展开和连续拼接,形成带深度、姿态信息的钻孔全景图;同时提供设备控制、视频录像、图片采集、工程存档及历史数据浏览功能。
主要工作:
- 基于 Qt/C++17 搭建跨平台客户端,完成设备配置、实时采集、图像拼接、录像回放和工程文件管理等业务模块。
- 设计多线程视频处理流水线,将 FFmpeg 解码、遥测解析、图像处理、录像编码和 UI 渲染解耦,通过有界队列、原子变量及信号槽保证实时性和线程安全。
- 使用 OpenCV 实现环形图像极坐标展开,并融合编码器位移与模板匹配结果,提供快速和精细两种连续拼接模式。
- 封装 TCP Client、TCP Server 和串口通信组件,实现自定义二进制协议、CRC16 校验、帧序检测、指令回执及断线重连。
- 基于 FFmpeg 实现 RTSP/USB 视频预览、录像、回放与时间戳同步,并将实时深度写入 MP4 标准字幕轨。
- 在 Android 端接入 MediaCodec 硬件解码、Surface 直接渲染及后台保活机制,降低移动设备的视频处理开销。
- 设计 IDOI 自定义检测数据格式,将拼接图像与深度、姿态数据关联存储,并通过 XML 建立项目、图片和录像索引。
- 建立线程安全的 JSONL 结构化日志体系,通过会话 ID、操作 ID 关联通信、录像、拍照和文件保存链路,支持日志限频、20 MiB 轮转及14天清理。
- 针对断线重连、线程退出、AVFrame 内存释放、PTS/DTS 时序和重复启停等场景进行稳定性优化。
光电云台视频监控与跟踪控制平台|C++ / Qt
面向光电云台及成像跟踪设备开发 Windows 桌面控制客户端,集成 RTSP 实时视频、设备协议通信、云台控制、目标跟踪、USB 手柄操作、录像抓拍和 FTP 文件管理,为设备调试与现场操控提供统一可视化平台。
- 基于 FFmpeg 搭建网络视频解封装、解码及录像链路,结合 OpenGL/GLSL 实现 YUV 多纹理渲染,支持实时预览、本地截图、录像及流中断自动重连。
- 抽象串口、TCP Client、TCP Server、UDP 四类通信通道,通过 QThread、Qt 信号槽及线程安全队列实现通信收发、视频处理和 UI 展示解耦。
- 设计并实现设备私有协议的组帧与解析,完成 16 字节定长帧、大小端转换、XOR 校验、粘拆包处理以及 10 ms 周期指令调度。
- 实现云台方位/俯仰控制、扫描与随动、变倍调焦、激光测距、目标框选跟踪、红外/可见光切换及设备状态实时回显。
- 集成 SDL2/QJoysticks,实现 USB 手柄热插拔检测、摇杆死区过滤、五级速度控制、按键及 POV 功能映射。
- 开发 FTP 双栏文件管理模块,支持批量上传下载、传输进度、目录管理、重命名、删除与多字段排序。
- 实现中英文动态切换、XML 配置持久化、原始数据流监控和设备错误日志,提升软件现场部署与问题定位效率。