基于v4l2+Qt5的usb摄像头视频采集显示程序

说明

功能

  • 实现在linux下通过V4L2采集usb摄像头数据
  • 通过qt界面显示
  • 显示摄像头的分辨率等基本信息
  • 可配置摄像头的分辨率

环境说明

linux: ubuntu
qt版本: Qt5.6.0
调用到的库: libv4l
测试是在ubuntu下运行的,交叉编译后在嵌入式设备运行理论上也是没问题的。
libv4l库是以源码形式加到qt工程里来的,所以实际上使用无需编译成动态库,qt工程编译出来的可执行程序就可以正常运行了。

部分代码说明

摄像头数据获取

使用了一个线程,一直获取摄像头的数据,当有数据时,将图像采集出来,并发送信号给到界面,进行显示
基于v4l2+Qt5的usb摄像头视频采集显示程序

图像显示

界面接收到线程发来的信号后,将图像显示到 label 中,从而实现摄像头数据的显示。
基于v4l2+Qt5的usb摄像头视频采集显示程序

效果

效果如图,可以看到摄像头的一些参数,同时也有计算出帧率显示在状态栏。
基于v4l2+Qt5的usb摄像头视频采集显示程序

扩展

工程加上二维码解码库就可以通过摄像头扫描二维码了。
基于v4l2+Qt5的usb摄像头视频采集显示程序