新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于S3C2410的的图像采集系统

基于S3C2410的的图像采集系统

作者:时间:2012-03-09来源:网络收藏

(5)对到的进行处理;

本文引用地址:http://www.eepw.com.cn/article/149480.htm

(6)关闭视频设备。

本文编写程序是在安装Linux操作的宿主机PC机上进行的,之后再移植到开发板上。下面是具体论述。

之前我们讲到了在V4L中定义的主要数据结构及其功能。对应着这些内容,我们需要对这些数据结构进行定义,以抽象化一个视频设备。以下是具体的定义内容:

摄像头、和关闭摄像头的操作。采集程序中定义了如下的函数,以实现前面讲到的功能。

intinit_videoIn(structvdIn*vd,char*device,intwidth,intheight,intgrabmethod);初始化摄像头设备。*vd包含了之前定义的数据结构中的基本信息。另外还要对摄像头采集的大小、采集模式等参数进行赋值。

intv4lGrab(structvdIn*vd,char*filename);采集图像主程序。*filename为图像的文件名,我们可以通过对文件名的设置来确定图像保存的位置。

intclose_v4l(structvdIn*vd);关闭摄像头intget_jpegsize(unsignedchar*buf,intinsize);采集图像的大小。

因为我们是通过调用采集主函数intv4lGrab(structvdIn*vd,char*filename)来实现图像的采集和保存的,所以需要详细的讲解一下该函数的构成。以下是该函数的具体内容:

首先,我们需要定义几个参数,如下:

FILE*fp;定义一个文件类型指针,指向我们采集到的图像文件intlen;

定义一个整型变量,记录从内存中读取的数据量intsize;

定义一个整型变量,指明一帧图像的数据量interreur=0;定义一个整型变量,指明运行时的错误返回值intjpegsize;定义一个整型变量,指明我们需要的图像大小。

接着我们调用read(vd->fd,vd->pFramebuffer,size)函数,把存放于图像缓冲区的数据读入到指定的临时文件中。之后根据我们对图像的大小、亮度、对比度等要求转化之前采集到的图像数据,最后我们打开一个文件,把图像数据写入到该文件中并保存。

4 结论

本文设计了一种嵌入式视频采集,该小巧,并且在保证当前信息完整的情况下,尽可能少的占用存储容量,实现了该系统的图像采集、存储和重现功能。在硬件规划上,采用实用简单的USB接口通信。且系统中预留了丰富的外设接口,便于今后的扩展升级。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭