搜索
bottom↓
回复: 135

基于Video For Linux的USB摄像头视频采集和基于Qt/Embedded的实时图像显示

[复制链接]

出0入0汤圆

发表于 2009-7-30 00:33:27 | 显示全部楼层 |阅读模式
这是我再FS2410开发板上,Linux是2.6的内核,Qt/Embedded是2.3.7版本的,USB摄像头主控芯片是中星微301P。摄像头驱动是spca5xxx,使用Video For Linux采集到jpeg图片,然后使用Qt/Embedded进行显示。图片如下:


(原文件名:DSC03413.JPG)

  其中左上角的那个显示的是采集到的图像。


(原文件名:DSC03405.JPG)


    全部程序包含两个部分视频采集和图片显示。
        点击此处下载 ourdev_465773.rar(文件大小:85K) (原文件名:moniter8.rar)

    只包含视频采集部分的程序:
        点击此处下载 ourdev_465774.rar(文件大小:13K) (原文件名:capture7.rar)
    其实很多Linux下的抓图程序和这个很类似。


    一些相关的参考资料:
点击此处下载 ourdev_465775.pdf(文件大小:219K) (原文件名:linux嵌入式视频论文.pdf)
点击此处下载 ourdev_465776.pdf(文件大小:175K) (原文件名:Linux下基于ARM920T的USB摄像头图像采集.pdf)
点击此处下载 ourdev_465777.pdf(文件大小:175K) (原文件名:Linux下基于ARM920T的USB摄像头图像采集.pdf)
点击此处下载 ourdev_465778.pdf(文件大小:77K) (原文件名:Video4Linux Programming_linux-2.4.pdf)
点击此处下载 ourdev_465779.pdf(文件大小:159K) (原文件名:基于Video4Linux 的USB 摄像头图像采集实现.pdf)



Linux下的USB摄像头图像采集要完成两个部分:摄像头驱动程序和图像采集应用程序。


1 加载USB摄像头驱动程序

Linux下自带有ov511控制芯片的USB摄像头驱动,但是我们使用的是中星微的摄像头,所以无法直接使用。目前Linux下的开源USB摄像头驱动spca5xx支持中星微的摄像头。在网上下载好源码,交叉编译成内核模块后使用insmod命令加载到系统中去。把摄像头连接到开发板上,发现可以识别到摄像头,下面我们就可以进行摄像头图像采集编程了。



2 Linux下的视频采集编程接口简介

Linux对于视频采集设备的支持,是通过Video For Linux实现的,通常可以简称为V4L,现在较高版本的Linux内核都已经包含了Video For Linux。Video For Linux是为各种电视卡,以及并口和USB接口的音视频采集设备提供统一的编程接口,在Linux 下,视频采集设备的正常使用依赖于对Video For Linux标准的支持。



3 基于Video For Linux的图片捕捉

基于Video For Linux的图片捕捉流程如图所示,主要包括三个部分:初始化,同步,读取数据。



(原文件名:video.jpg)



图片捕捉流程见上图,主要包括3个步骤:

    1)初始化:首先是使用open函数打开视频设备文件,而且是独占的可读模式。然后使用Video For Linux接口函数设置视频设备的数据通道,设置视频数据传输的模式,可选的有NSTC或者PAL等。为了方便读取图像数据,使用mmap函数建立内存映射,在应用程序中直接读取图像数据。最后就是设置要捕捉的图片大小,即分辨率,我使用的摄像头最大可以提供分辨率800*600,每秒25张图片。

    2)同步:等待一帧视频数据采集完毕后才能读取数据,否则将出现错误,同时还可以对帧号进行操作。

    3)读取数据:我们使用的中星微摄像头传输过来的图片已经是JPEG编码格式。

    下图就是使用Video For Linux采集的320*240的jpeg格式图片。

(原文件名:sample1.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2009-7-30 02:16:52 | 显示全部楼层
好资料,谢谢!顶一下!

出0入0汤圆

发表于 2009-7-30 03:17:03 | 显示全部楼层
高手,支持啊,真希望能到达LZ的水平。

出0入0汤圆

发表于 2009-7-30 03:19:20 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-7-30 09:52:52 | 显示全部楼层
thank you very much

出0入0汤圆

发表于 2009-7-30 20:08:20 | 显示全部楼层
好羡慕楼主啊,小弟就想搞监控,可是入门就入了1个月还没进去,郁闷啊!!

出0入0汤圆

发表于 2009-7-30 23:49:01 | 显示全部楼层
最近也打算学习下视频采集,楼主的摄像头每秒钟可以达到多少帧啊,USB2.0全速接口,貌似不是很快。

出0入0汤圆

 楼主| 发表于 2009-7-31 22:34:52 | 显示全部楼层
我使用的是10帧每秒,这个板子是usb1.0标准的,不会太快。

出0入0汤圆

 楼主| 发表于 2009-7-31 22:34:54 | 显示全部楼层
我使用的是10帧每秒,这个板子是usb1.0标准的,不会太快。

出0入0汤圆

发表于 2009-8-1 12:26:05 | 显示全部楼层
我想在Debian服务中添加奥尼ANC的一款摄像头,也想通过自己编译spca5xxx来驱动,目前尚未成功,没头绪,暂放一边。

出0入0汤圆

发表于 2009-8-1 12:56:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-1 14:56:08 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-9-25 15:51:54 | 显示全部楼层
下载了,正在研究
谢谢了,把这么好的东西拿出来分享
曾经看到过一句话,网络上的大侠才是中国未来真正的希望,向你学习,共同促进开源的发展

出0入0汤圆

发表于 2009-9-26 00:30:10 | 显示全部楼层
一哈学习!

出0入0汤圆

发表于 2009-9-26 08:50:02 | 显示全部楼层
这个得顶

出0入0汤圆

发表于 2009-9-26 09:44:57 | 显示全部楼层
这么吊!

出0入0汤圆

发表于 2009-10-10 21:35:00 | 显示全部楼层
我把楼主的例子移植到我的板子mini2440,可以正常运行,但是提示can not get channels,我把它屏蔽掉,接下来那个get_mbuf又出错了,弄了好几天都没解决,希望楼主能帮忙一下,谢谢了,我的QQ502116852,邮箱08zthuang@stu.edu.cn

出0入0汤圆

发表于 2009-10-10 22:11:01 | 显示全部楼层
马克。

出0入0汤圆

发表于 2009-10-11 00:00:28 | 显示全部楼层
很好很强大

出0入0汤圆

发表于 2009-10-17 09:51:57 | 显示全部楼层
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞

出0入0汤圆

发表于 2009-12-7 16:51:05 | 显示全部楼层
哈哈  支持

出0入0汤圆

发表于 2009-12-8 16:58:25 | 显示全部楼层
楼主,我qq号:674493629,可以跟你交流一下吗?谢谢了!

出0入0汤圆

发表于 2010-1-14 20:10:25 | 显示全部楼层
MARK

出0入20汤圆

发表于 2010-1-14 20:21:11 | 显示全部楼层
这个应该支持一下`

出0入0汤圆

发表于 2010-1-14 22:06:22 | 显示全部楼层
呵呵

出0入0汤圆

发表于 2010-1-22 08:23:12 | 显示全部楼层
顶,多谢

出0入0汤圆

发表于 2010-1-23 22:18:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-24 00:22:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-25 08:15:01 | 显示全部楼层
楼主牛人啊!!资料收下了,谢谢!

出0入0汤圆

发表于 2010-2-21 14:45:28 | 显示全部楼层
学习了。

出0入0汤圆

发表于 2010-3-12 16:18:10 | 显示全部楼层
我在读研究生的时候做过一个一模一样的东西,哈哈哈。

出0入0汤圆

发表于 2010-3-13 18:02:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-27 08:32:24 | 显示全部楼层
mark并膜拜一下。

出0入0汤圆

发表于 2010-3-27 14:14:54 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-4-17 20:00:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-28 11:37:11 | 显示全部楼层
kankan 赞一个!

出0入0汤圆

发表于 2010-4-28 12:53:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-30 08:34:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-30 09:55:32 | 显示全部楼层
不知谁挖出来的
我也mark下

出0入0汤圆

发表于 2010-4-30 10:03:31 | 显示全部楼层
楼主nb

出0入0汤圆

发表于 2010-5-14 10:11:36 | 显示全部楼层
我是新手。问一下万能驱动能否识别中星微ZC0301PLH芯片(例如摄像头ANC S866)。

出0入0汤圆

发表于 2010-5-14 10:56:19 | 显示全部楼层
楼主也不放出个qt 的教程,,不会qt诶

出0入0汤圆

发表于 2010-8-18 14:44:57 | 显示全部楼层
楼主你好,最近在学习这个。qq号272996295希望够得到你的指教。谢谢 呵呵

出0入0汤圆

发表于 2010-8-18 17:53:18 | 显示全部楼层
mark!~~

出0入0汤圆

发表于 2010-8-21 09:54:07 | 显示全部楼层
真不错,我也在学习希望和你交流,qq:554262404

出0入0汤圆

发表于 2010-9-3 15:47:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-3 16:57:54 | 显示全部楼层
makr

出0入0汤圆

发表于 2010-9-6 14:40:50 | 显示全部楼层
谢谢   可以用来参考一下

出0入0汤圆

发表于 2010-9-6 14:45:35 | 显示全部楼层
mark Video For Linux

出0入0汤圆

发表于 2010-9-6 15:17:43 | 显示全部楼层
mark

出0入4汤圆

发表于 2010-9-6 22:49:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-8 14:41:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-31 10:37:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-10 11:40:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-14 13:57:38 | 显示全部楼层
不错,学习了!

出0入0汤圆

发表于 2011-2-14 14:54:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-14 15:07:50 | 显示全部楼层
mark,好东西哈哈

出0入0汤圆

发表于 2011-3-4 05:53:45 | 显示全部楼层
系统编译 picview.cpp总是提示错误:class Qpainter没有名为“scale”成员。请问一下能帮忙解答吗?

出0入0汤圆

发表于 2011-4-25 16:28:49 | 显示全部楼层
请问各位大侠,我想实现视频保存回放的功能,系统需要什么配置?

出0入0汤圆

发表于 2011-5-3 17:41:38 | 显示全部楼层
必mark

出0入0汤圆

发表于 2011-5-3 18:16:11 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-3 18:23:04 | 显示全部楼层
下载了,正在研究

出0入0汤圆

发表于 2011-5-3 18:45:36 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-5-4 15:15:37 | 显示全部楼层
崇拜啊~~~果断收藏

出0入0汤圆

发表于 2011-5-14 22:03:47 | 显示全部楼层
楼主有没有试着用V4L2做!听说变化挺大的!期待回复!

出0入0汤圆

发表于 2011-5-14 22:39:30 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-14 23:03:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 00:40:59 | 显示全部楼层
mark~

出0入0汤圆

发表于 2011-5-15 00:50:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 00:51:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 08:25:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-17 17:17:07 | 显示全部楼层
很不错的东西。

出0入0汤圆

发表于 2011-5-18 16:57:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-23 16:00:39 | 显示全部楼层
cool!

出0入0汤圆

发表于 2011-5-23 18:06:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-29 00:36:59 | 显示全部楼层
Lz你好,我把你的capture7移植到TQ2440板子上,出现了如下的错误

(原文件名:捕获.PNG)

我使用板子自带的2.6.30.4的内核,在网上查了一下,内核加上了如下配置
Device Drivers  --->
      Multimedia devices  --->
                    *** Multimedia core support ***
                <*> Video For Linux
               
  •    Enable Video For Linux API 1 (DEPRECATED)
    但是下载的内核已经加上了上面的配置 ,不知道怎么回事??是内核的关系还是摄像头的关系?

    QT界面的程序我是在QT4.5环境下编译的,也出现了错误:

    (原文件名:1.PNG)

    这是QT的版本关系么??
    xiexie
  • 出0入0汤圆

    发表于 2011-5-29 11:01:13 | 显示全部楼层
    我又换了下Qt的环境2.2.0,这回重新编译了一下,出现了59楼朋友的错误,把这句屏蔽掉了,这回编译通过了...在PC机
    上仿真的图:


    (原文件名:捕获1.PNG)

    也不知道屏蔽掉的那句有没有影响???

    期间还出现了一个错误:cannot open framebuff /dev/fd0...
    在运行程序之前执行了qvfb -width 320 -hight 240 &就可以显示了!!

    但是capture7那个程序还是没有在板子上运行,天嵌2.6.13的内核不支持256M的flash,不知道怎么办??

    出0入0汤圆

    发表于 2011-5-29 11:51:16 | 显示全部楼层
    mark!lz V5

    出0入0汤圆

    发表于 2011-5-29 11:58:18 | 显示全部楼层
    又换了两个摄像头(这两个都是同学近两年买的),,出现了16楼朋友的错误,

    之前的摄像头是同学N年前买的!!执行采集程序时,摄像头上的灯也亮了,但是就是出现了如上的错误!

    难道不是内核的原因??是摄像头的关系

    LZ 有时间看看啊谢谢

    出0入0汤圆

    发表于 2011-5-29 13:11:10 | 显示全部楼层
    好东东,先下了看看。十分感谢

    出0入0汤圆

    发表于 2011-5-29 14:33:41 | 显示全部楼层
    终于成功了!!!

    出0入0汤圆

    发表于 2011-5-29 14:34:00 | 显示全部楼层

    (原文件名:捕获4.PNG)

    出0入0汤圆

    发表于 2011-6-1 14:49:55 | 显示全部楼层
    恭喜LZ!!

    出0入0汤圆

    发表于 2011-6-17 19:32:56 | 显示全部楼层
    mark,lz 强大

    出0入0汤圆

    发表于 2011-8-23 17:35:53 | 显示全部楼层
    好贴!!正需要。

    出0入0汤圆

    发表于 2011-9-14 13:53:57 | 显示全部楼层
    mark

    出0入0汤圆

    发表于 2011-9-16 08:57:40 | 显示全部楼层
    mark

    出0入0汤圆

    发表于 2011-10-14 09:45:16 | 显示全部楼层
    回复【7楼】superyongzhe 最后的骑士
    -----------------------------------------------------------------------

    楼主,请问一下,你有没有带有qtopia的根文件系统qtopia.cramf?优龙手册上写着里面带这个根文件系统,但我的里面没有带这个东西!

    出0入0汤圆

    发表于 2011-10-14 09:52:33 | 显示全部楼层
    这个很好。MARK!

    出0入0汤圆

    发表于 2011-10-14 10:01:08 | 显示全部楼层
    回复【楼主位】superyongzhe 最后的骑士
    -----------------------------------------------------------------------

    不好意思,我刚都忘了发我的邮箱了:wangchao7620@126.com,真的太需要这个了,麻烦楼主了!

    出0入0汤圆

    发表于 2011-10-14 10:25:03 | 显示全部楼层
    学习。

    出0入0汤圆

    发表于 2011-10-19 17:15:53 | 显示全部楼层
    收藏了

    出0入0汤圆

    发表于 2011-10-30 22:42:12 | 显示全部楼层
    回复【78楼】1988 coolboy
    我又换了下qt的环境2.2.0,这回重新编译了一下,出现了59楼朋友的错误,把这句屏蔽掉了,这回编译通过了...在pc机
    上仿真的图:


    (原文件名:捕获1.png)
    引用图片
    也不知道屏蔽掉的那句有没有影响???
    期间还出现了一个错误:cannot open framebuff /dev/fd0...
    在运行程序之前执行了qvfb -width 320 -hight 240 &amp;就可以显示了!!
    但是capture7那个程......
    -----------------------------------------------------------------------

    coolboy,有个问题想请教您,是关于《基于Video For Linux的USB摄像头视频采集和基于Qt/Embedded的实时图像显示》,我也是用的qt4,现在遇到了很多问题,由于不是很懂qt,所以比较头痛,是否可以帮忙解答一下?多谢。
    我这里出现的类似您帖子中讲得错误,不知应如何解?
    您都修改了哪些地方?可否简单罗列?
    或者指个方向。
    若能不吝赐教源码,不胜感激。
    我的QQ:414697928,email:jinglei.auto@gmail.com

    希望与您深入交流与探讨。

    出0入0汤圆

    发表于 2011-10-30 22:44:45 | 显示全部楼层
    回复【59楼】liuxiaoyang
    系统编译 picview.cpp总是提示错误:class qpainter没有名为“scale”成员。请问一下能帮忙解答吗?

    -----------------------------------------------------------------------

    我这里遇到了很多问题,我目前qt版本为4.7,linux内核为2.6.32.  开发板为mini2440.
    请问您把这个问题解了吗?
    可否与您深入探讨?

    qq:414697928 email:jinglei.auto@gmail.com

    希望不吝赐教。

    出0入0汤圆

    发表于 2011-10-30 22:47:42 | 显示全部楼层
    回复【楼主位】superyongzhe 最后的骑士
        这是我再fs2410开发板上,linux是2.6的内核,qt/embedded是2.3.7版本的,usb摄像头主控芯片是中星微301p。摄像头驱动是spca5xxx,使用video for linux采集到jpeg图片,然后使用qt/embedded进行显示。图片如下:


    (原文件名:dsc03413.jpg)
    引用图片
      其中左上角的那个显示的是采集到的图像。

    <center>
    <font color=green>(原......
    -----------------------------------------------------------------------

    楼主,太强大了。
    我正需要相关的资料,不过我编译您的source code的时候,出现了很多问题;有人说是qt2和qt4版本差异(我使用的是qt4.7),若是如此,我应如何修改?
    小弟还未入门,不懂qt,望您不吝赐教。

    另外,小弟还想与您深入探讨,QQ 414697928 email:jinglei.auto@gmail.com

    出0入0汤圆

    发表于 2011-12-6 21:32:04 | 显示全部楼层
    mark 楼主强大

    出0入0汤圆

    发表于 2012-1-12 21:06:46 | 显示全部楼层
    mark!!

    出0入0汤圆

    发表于 2012-1-15 13:55:11 | 显示全部楼层
    qiangda!!

    出0入0汤圆

    发表于 2012-1-20 22:11:25 | 显示全部楼层
    太好了

    出0入0汤圆

    发表于 2012-1-23 17:37:20 | 显示全部楼层
    up!
    回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

    GMT+8, 2024-4-24 05:17

    © Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

    快速回复 返回顶部 返回列表