嵌入式Linux中摄像头使用简要整理【转】

简介: 转自:http://www.cnblogs.com/emouse/archive/2013/03/03/2941938.html 本文涉及软硬件平台: 开发板:飞凌OK6410 系统:Ubuntu 12.04+飞凌官方3.0.1   嵌入式Linux还处在入门阶段,主要方向是嵌入式下的图像处理,最近一直在学习OpenCV和Qt相关知识,打算以此入手。

转自:http://www.cnblogs.com/emouse/archive/2013/03/03/2941938.html

本文涉及软硬件平台:

开发板:飞凌OK6410

系统:Ubuntu 12.04+飞凌官方3.0.1

 


嵌入式Linux还处在入门阶段,主要方向是嵌入式下的图像处理,最近一直在学习OpenCV和Qt相关知识,打算以此入手。

本文记录在嵌入式平台摄像头的选择和测试过程中的一点经历,没有太多的技术内容,对于同样入门还在盲目摸索的同学可能有一点帮助。

之前没有任何图像方面开发的经验,对于Windows平台来说,摄像头也就是插上去装个驱动,剩下的用起来就差不多了,具体的差异很难深入去了解,在学习嵌入式linux的时候,在没有什么基础的情况下,一开始摄像头的选择和测试就要绕一个大圈子。

摄像头选择与内核配置

打算用手中的6410板子先做点图像方面的小程序,自然在网上搜搜关于6410上面用的摄像头,搜索发现绝大多数是两种情况,一种是使用中星微ZC301P芯片的usb摄像头,还有就是官方适配的模块OV9650。记得实验室有很多摄像头,于是在实验室翻箱倒柜找了找,普通电脑用USB摄像头找到3个,一个就是中星微ZC301芯片的了,图片如下,和淘宝上卖的外观确实是一样的,另外两个杂牌,其中一个经过测试用的也是中星微的芯片,另外一个就是本文要说的UVC格式的摄像头。

image

ZC301摄像头和UVC输出的摄像头在板子上的Linux 3.0.1内核中已经自带支持,插上就能够识别,网上说2.6.26都能支持,不过需要在编译内核的时候进行针对性配置,在内核的配置中可以按照如下路径进行查找配置:

<*> Multimedia support ---> <*> Video For Linux [*] Enable Video For Linux API 1 (DEPRECATED) [*] Video capture adapters ---> [*] V4L USB devices ---> <*> USB Video Class (UVC) [*] UVC input events device support [*] GSPCA based webcams --->
复制代码

到这里就能看到UVC和GSPCA两者的驱动支持了,UVC的简介如下:

UVC是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,目前已成为USB org标准之一。

如今的主流操作系统(如Windows XP SP2 and later, Linux 2.4.6 and later, MacOS 10.5 and later)都已提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备。

GSPCA同样是一种标准,早期的很多摄像头用的就是这一标准,ZC301就属于这一类型,在 GSPCA based webcams下最后能够找到ZC3XX的驱动支持。这个内核中默认UVC和GSPCA都是选上的,对于其他版本如果无法支持就需要重新编译内核了。配置界面如下图所示。image

摄像头类型的确定

很多品牌摄像头,如罗技的很容易确定芯片型号,和是否支持UVC,但是也有很多摄像头无法确定,经过前期的查找,决定使用UVC的摄像头,关于摄像头类型的确定方法可以通过硬件ID来确定,硬件ID主要分为VID和PID,在Winows中可以在设备管理器中查看,方法如下图:

SNAGHTML2780441

在这个图中能够看到VID和PID为04F2:B257,这是我笔记本内置摄像头的ID,可以通过这个文档(

摄像头驱动VID+PID大全)来确定芯片类型,3个摄像头中的一个芯片ID为1871:01F0,可以通过这个网页(http://www.ideasonboard.org/uvc/)来查看是否是否支持UVC,如下图所示,可以看到这个摄像头在支持范围内。

image

ZC301的使用网络上已经有很多的资料了,下面主要记录UVC摄像头的一些信息。

将UVC摄像头插入开发板,输出以下信息,说明内核能够正确识别。

SNAGHTML28541cd

确定ID后,还可以通过以下方式查看,输出如下信息时也表示支持。

 

简单测试

坑爹的飞凌板子给的资料很多,但是文档极差,很多程序源码没啥说明,自己使用可能需要摸索一阵子了。飞凌官方给了usb摄像头的测试程序,我文档中的文件为testcam.c ,test_usb_camera 源码中还有其他几个程序,经过测试这个我测试是可以的。

另外一个就是UVC的一个测试软件luvcview,在资料光盘中的路径为:Linux-3.0.1\apptest\摄像头测试\USB摄像头\USBCamera- linux+android\linux3.0.1系统下-2012-07-05,通过这个可以查看和测试UVC摄像头。

查看摄像头信息:./luvcview -d /dev/video2 –L 结果如下:

SNAGHTML2a9b0c5

由此可以看出摄像头的一些基本信息,更多的不太了解,起码清楚了输出格式YUV,以及分辨率,接下来通过这些信息来测试。

[root@FORLINX6410]# ./luvcview -d /dev/video2 -f yuv -s 320x240

即可运行。

emouse 思·睿博客文章 原创文章转载请注明:http://emouse.cnblogs.com
【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
4月前
|
数据安全/隐私保护 芯片
芯片数据手册阅读方法
芯片数据手册阅读方法
36 0
|
8月前
|
存储 移动开发 Linux
Linux项目实战系列之:再谈一次GPS数据解析
Linux项目实战系列之:再谈一次GPS数据解析
|
存储 缓存 算法
《计算机操作系统》重点知识笔记整理(二)(上)
《计算机操作系统》重点知识笔记整理(二)
|
存储 算法 安全
《计算机操作系统》重点知识笔记整理(一)(下)
《计算机操作系统》重点知识笔记整理(一)
|
存储 资源调度 算法
《计算机操作系统》重点知识笔记整理(一)(上)
《计算机操作系统》重点知识笔记整理(一)
|
存储 Unix 数据安全/隐私保护
《计算机操作系统》重点知识笔记整理(二)(下)
《计算机操作系统》重点知识笔记整理(二)
|
编解码 Ubuntu Linux
树莓派4b入手 (下篇)
系统选择 推荐普通用户使用官方镜像即可. 该系统对树莓派设备适配优化的最为成熟. Download Raspberry Pi OS for Raspberry Pi https://www.raspberrypi.org/downloads/raspberry-pi-os/ 如果直接下载系统包过慢,可以选择下载torrent. 或者去清华 tuna下载站 https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/ 去进行下载. 这里推荐使用官方 Raspberry Pi Imager 去安装系统
211 0
树莓派4b入手 (下篇)
|
开发者
软件需求与分析读书笔记3
这本厚厚的书终于被我读完了,现在开始最后一篇读书笔记。     最后几章主要讲的是需求的文档和需求过程的管理。即需求分析必须标准化。我们在需求的过程中必须学会用建模的方法来规范需求工程。需求分析的根本任务是简历分析模型,达成开发者和用户对需求信息的共同理解,根据共同的理解,发挥创造性,创建软件系统的解决方案。
1105 0
《 嵌入式系统设计与实践》一一3.4 阅读原理图
本节书摘来自华章出版社《 嵌入式系统设计与实践 》一 书中的第3章,第3. 3 节,作者:Elecia White 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1576 0