
前言在嵌入式视觉应用中USB 摄像头是最常用的图像采集设备。本文基于龙芯 2K2000 开发板和 Qt 框架讲解 UVC 摄像头的采集、显示完整实现方案包含工程编译、板端部署、功能验证全流程帮助开发者快速搭建嵌入式视觉应用原型。米联客官方论坛链接为资料下载 FPGAAI数字世界 -开发环境说明:虚拟机使用的是米联客论坛提供的Ubuntu22.04版本开发包为论坛中的2k2000开发包开发板型号为MLK-LS02A-2K2000-iCameraDemo源码包在MLK-LS02A-2K2000/03_soc_demo/USB摄像头方案2k2000中有提供具体的硬件参数如下图所示一、开发环境前置条件本文基于上一篇搭建的 Qt 交叉编译环境进行开发需提前完成LoongOS 交叉编译工具链安装Qt 交叉编译环境配置开发板运行 Loongnix 桌面系统二、CameraDemo 工程编译2.1 工程结构说明CameraDemo 是基于 Qt Widgets 开发的摄像头应用核心文件包括camera.h/camera.cpp摄像头采集控制模块showplay.h/showplay.cpp图像显示模块camera.ui/showplay.ui界面布局文件CameraDemo.proQt 工程配置文件2.2 完整编译步骤# 1. 解压工程tar -zxvf CameraDemo.tar.gzcd CameraDemo# 2. 加载交叉编译环境source /opt/LoongOS/v0.1/environment-setup-loongarch64-Loongson-linux# 3. 清理旧编译产物make clean# 4. 生成Makefileqmake# 5. 移除不兼容编译参数sed -i s/-mtunela264//g Makefile# 6. 多线程编译make编译成功后会生成可执行文件CameraDemo文件格式为 loongarch64 ELF。三、板端部署与运行3.1 程序部署将整个CameraDemo文件夹拷贝到 U 盘U 盘插入开发板 USB 接口复制文件夹到开发板桌面目录3.2 硬件连接将 UVC 标准 USB 摄像头插入开发板的 USB 接口龙芯 2K2000 内核已集成 UVC 驱动无需额外安装。可通过以下命令确认设备识别ls /dev/video*正常情况下会出现/dev/video0设备节点。3.3 运行程序cd ~/桌面/CameraDemochmod x CameraDemo./CameraDemo3.4 运行效果程序启动后会自动枚举摄像头支持的格式和分辨率终端输出示例supported formats: YUYV 4:2:2, YUYVDefault frame rate for this format 30 fpsSupported resolutions are:640x480352x288320x240160x1201280x7201280x960supported formats: Motion-JPEG, MJPGGUI 界面提供以下功能实时预览摄像头画面拍照保存功能预览暂停 / 继续相册查看四、核心技术实现解析4.1 摄像头采集原理Qt Multimedia 模块提供了QCamera类来操控摄像头底层通过 V4L2 框架与内核交互。龙芯平台的 UVC 驱动完全符合 V4L2 标准因此可以直接使用 Qt 标准 API。4.2 图像显示优化嵌入式平台性能有限显示优化要点优先使用 MJPEG 格式降低 CPU 解码负载根据屏幕分辨率选择合适的采集分辨率使用QLabelQPixmap显示避免复杂渲染4.3 常见问题排查找不到设备节点检查摄像头是否为 UVC 标准更换 USB 接口重试画面卡顿降低分辨率或切换到 MJPEG 格式程序启动报错检查 Qt 运行库是否完整可通过ldd CameraDemo查看依赖五、扩展开发方向基于本 Demo 可以扩展以下功能人脸识别集成 RKNN 或 NCNN 推理框架实现 AI 检测视频录制添加视频编码保存功能网络传输将画面通过 RTSP/HTTP 推流多摄像头切换支持多路摄像头采集总结本文介绍了龙芯 2K2000 平台 USB 摄像头 Qt 应用的完整开发流程从编译部署到功能验证给出了可直接落地的操作步骤。Qt 的跨平台特性大幅降低了嵌入式 GUI 开发门槛结合龙芯处理器的稳定表现可以快速构建各类工业视觉、智能终端应用。