- 1
- 0
- 约3.47千字
- 约 6页
- 2019-05-06 发布于山东
- 举报
视频的采集和动态显示
第 PAGE \* Arabic \* MERGEFORMAT 6 页
在 HYPERLINK /surpassal/archive/2012/12/19/zed_webcam_lab1.html (原创)基于ZedBoard的Webcam设计(一):USB摄像头(V4L2接口)的图片采集和 HYPERLINK /surpassal/archive/2012/12/22/zed_webcam_lab2.html (原创)基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示两篇博客中,我们完成了ZedBoard上USB摄像头的图片采集,以及将图片显示到Qt界面上。可是毕竟采集和显示到只是一帧图像,并非动态的视频数据。本小节将在介绍V4L2更新视频缓冲的方式、Qt paintEvent更新控件的基础上,实现如何实现视频的动态显示。
更多更新请关注我的博客:@超群天晴? HYPERLINK /surpassal/ /surpassal/?
?
相关阅读?:
HYPERLINK /surpassal/archive/2012/12/19/zed_webcam_lab1.html (原创)基于ZedBoard的Webcam设计(一):USB摄像头(V4L2接口)的图片采集
HYPERLINK /surpassal/archive/2012/12/22/zed_webcam_lab2.html (原创)基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示
HYPERLINK /surpassal/archive/2013/01/12/zed_webcam_lab3.html (原创)基于ZedBoard的Webcam设计(三):视频的采集和动态显示
HYPERLINK /surpassal/archive/2013/03/28/zed_webcam_4.html (原创)基于ZedBoard的Webcam设计(四):MJPG编码和AVI封装
HYPERLINK /surpassal/archive/2013/03/11/zed_webcam_5.html (原创)基于ZedBoard的Webcam设计(五):x264编码在zedboard上的实现(软编码)
?
硬件平台:Digilent ZedBoard
开发环境:Windows XP 32 bit + Wmare 8.0 + Ubuntu 10.04 +Qt+ arm-linux-xilinx-gnueabi交叉编译环境?
Zedboard linux:?Digilent OOB Design??
?
一、V4l2更新缓冲Buffer的方法
?回顾上一节中,我们使用v4l2控制usb 摄像头,对摄像头的静态图片采集流程操作过程可以归纳为图1:
图1 静态图片采集流程图
所用到的函数和参数都在旁边标注出。可以看到使用命令VIDIOC_DQBUF将缓存中的图像帧取出,然后摄像头设备是一直在采集图像,如果没有更新缓存区命令,采集到的新数据是不会被更新到缓存中的。v4l2提供了与VIDIOC_DQBUF命令相对的命令VIDIOC_QBUF,我对这个命令的理解就是允许摄像头设备将采集图像更新到缓存区。假设开辟的缓存FIFO大小为4帧,如图2(a),当使用VIDIOC_DQBUF命令后,当前帧n从FIFO中取走,FIFO留下一个空缺,如图2(b),这种情况下如果使用VIDIOC_QBUF命令,新一帧n+4将被写入缓存,如图2(c)。
图2 缓存FIFO与VIDIOC_DQBUF命令、VIDIOC_QBUF命令
所以为了实现缓存区图像数据的动态更新,需要在每一次处理完数据后使用VIDIOC_QBUF更新缓存区,以便下一次VIDIOC_DQBUF获取到新的一帧数据。因而动态更新缓存的视频采集流程应该如图3所示:
?
图3 动态视频采集流程
?为此,需要重新定义两个函数,一个我们定义为get_frame获取视频帧:
1 int VideoDevice::get_frame(void **frame_buf, size_t* len)
2 {
3 v4l2_buffer queue_buf;
4
5 queue_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
6 queue_buf.memory = V4L2_MEMORY_MMAP;
7
8 if(ioctl(fd, VIDIOC_DQBUF, queue_buf) == -1)
9 {
10 return FALSE;
11 }
12
13
您可能关注的文档
- 基于WiFi的上课签到手机应用程序解决方案.doc
- 基于Virtual.Lab的后扭梁疲劳寿命分析.docx
- 基于BP神经网络的 干散货航运市场运价预警研究 .doc
- 基于Excel的项目投资 评价实现过程.doc
- 51单片机c语 言教程全集.doc
- 基于全数字中频技术的频谱分析仪的工作原理.docx
- 基于Webwork+Hibernate+Spring的BS开发范本.doc
- 基于模态灵敏度分 析的客车车身优化.doc
- 基于 AI 智慧人脸门禁 系统项目详细方案.docx
- 基于人脸及特征的人员追 踪系统.docx
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)