| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> V4L2+QT+USB摄像头实时显示视频(ArmLinuxwindow均适用) -> 正文阅读 |
|
[嵌入式]V4L2+QT+USB摄像头实时显示视频(ArmLinuxwindow均适用) |
写在开头笔者自从学习了Framebuffer编程和V4L2编程之后,就想实现在LCD屏上显示实时视频 笔者学习过正点I.MX6U Linux C编程中的相关内容,然而原子的例程是针对OV5640摄像头写的,像素格式是RGB 然而USB摄像头大多支持MJPEG或者YUYV格式,如果要在屏幕上显示需要进行格式转换,而转换像素格式是需要处理时间的,自然会影响视频帧率 笔者尝试写过YUYV2RGB888或者YUYV2RGB565,实际跑起来能明显感受到掉帧; 那有没有办法既能实时显示视频也不用进行图像格式转换还能有用户操作界面? 笔者结合之前所学内容最终决定用QT写界面,V4L2编程来获取实时的帧并将其显示在设计好的界面上 开发环境
必备知识UVC驱动配置可以看我的这一篇: Linux 内核4.14添加UVC配置 QT移植并显示图片可以看我的这一篇: Qt移植正点原子ZYNQ7010-Arm平台显示图片demo,本博客的程序设计也是基于这一篇文章的 V4L2编程入门可以看我的这一篇: V4L2编程之USB摄像头采集jpeg图像 界面布局设计
界面很简单,本博客只是实现最基础的功能,后续会在此基础上加控件和其他功能。 程序设计思路
关键部分在于789三步,这里稍作解释,不想看的可直接去看源码——我的Github仓库: Linux C编程实战代码 要在ARM平台跑也是可以的,需要自行移植QT到ARM开发板,移植办法详见我往期博客Qt移植正点原子ZYNQ7010-Arm平台显示图片demo 关键代码分析获取用户输入赋值给v4l2_dev_init()初始化对应的摄像头
两个按钮的信号连接代码
定时器控制帧率,每个33ms触发video_show()显示一帧数据,一秒钟正好显示30帧(笔者的摄像头最大支持30fps,故如此设置)
初始化select()来进行I/O端口复用
此段代码摘自V4L2 API手册最后的示例代码中,相关pdf文档已上传到github 获取一帧图像的数据,见于v4l2_get_one_frame(FrameBuffer *framebuf)
Qt 提供了四个用于处理图像数据的类,而 QPixmap 正是为在屏幕上显示图像而设计和优化
结束语本博客的程序已上传到github中,往期博客有关Linux C编程的代码也一并上传,需要的自行下载 后续会继续更新,通过程序设计来实现拍照截图、图像处理、视频流的存储和推流等功能,慢慢完善了 我是爱学习的诸葛铁锤,觉得有帮助的话记得点个赞再走吧,wakuwaku! |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:42:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |