C++ Qt 摄像头视频采集实战:V4L2 与多线程
文件概述
本文主要讲解如何使用 Qt 的 QThread 编写视频采集线程类,实现从 Linux 摄像头设备采集视频、转换图像并通过信号发送的功能。
头文件结构
#ifndef CAPTURE_THREAD_H
#define CAPTURE_THREAD_H
// 各种头文件
// 宏定义
// 结构体
// CaptureThread 类
#endif
这是标准的 C/C++ 头文件保护,防止重复包含。
依赖库分类
1. Linux 底层相关(摄像头 / 显存)
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/videodev2.h>
#include <sys/mman.h>
| 头文件 | 用途 |
|---|---|
fcntl.h | 打开设备文件 |
unistd.h | read / write |
videodev2.h | V4L2 摄像头接口 |
sys/mman.h | 内存映射(mmap) |
结论:这是直接操作 Linux 摄像头设备,而非使用 OpenCV 等高级接口。
2. Qt 相关(线程 / 图片 / 网络)
#include <QThread>
#include <QImage>

