×
嵌入式开发 > 详情

嵌入式系统视频图像捕获研究

发布时间:2020-06-16 发布时间:
|

本文论述了嵌入式系统相关理论、嵌入式Linux的基本概念,主要阐述了采用嵌入式Linux进行视频图像数据的捕获、存储、显示等。采用的关键技术包括 V4L、framebuffer、数字图像格式变换等,提出了图像数据格式的变换方法。同时阐述了具体的实现方法。

1 嵌入式系统简介

l下。同时在为了同相关的设备进行通信,需要一些结构体、变量和函数,所以需要包含其他的相关文件。如sys/types.h>、

sys/stat.h>、 sys/ioctl.h>、 sys/mman.h>、 linux/videodev.h>、 fcntl.h>、 unistd.h>等。摄像头、V4L、设备驱动程序、嵌入式Linux操作系统的关系用图1表示如下。

图1

具体的图像数据的捕获过程为:打开设备文件、查询和确认设备性能、设置捕获的图像的宽和高、设置色深、建立内存映射(后文阐述)、读取图像数据、关闭设备。[4]

具体的这个过程由于篇幅关系本文将不做具体阐述,读者可以查阅本文的参考文献3。在上述的过程中主要考虑的问题是内存的映射问题。为了读取数据首先需要将显示设备的地址映射到系统地址上来,这需要调用函数mmap()。该函数返回的地址就是存放图像数据的地址。每一帧图像都偏移固定的长度。而摄像头取得图像会包含若干帧。这样通过周而复始的进行就可以将图像数据捕获下来。具体过程和涉及到的函数如下所示:

打开设备文件: int device = open (/dev/v4l/video0, O_RDWR);

内存映射:char* memoryMap = (char*)mmap (0, memoryBuffer.size, PROT_READ | PROT_WRITE, MAP_SHARED, device, 0);

图像数据memoryMap + memoryBuffer.offsets[bufferIndex]

图2


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
发明专利在疫情影响下的逆势增长