zoukankan      html  css  js  c++  java
  • 【智能无线小车系列九】在树莓派上使用USB摄像头

    材料准备:

    1、树莓派

    2、AS 4WD小车

    3、WebCam

    4、小米移动电源

    5、TP—LINK 高增益150MUSB无线网卡

    操作流程:

    1.将WebCam插上树莓派后,首先要确认树莓派是否支持该设备。输入:

    pi@raspberrypi ~$ lsusb

       在返回的信息中,我们可以看到“Logitech, Inc.WebCam C270”的信息,说明该视频摄像头摄像头已经被树莓派操作系统成功识别。一般来说,只要在官方兼容列表中的设备,都能够被树莓派成功识别。此外,我们在返回的消息中,还可以看到键鼠、无线网卡的相关信息。

    2、测试实时视频

      luvcvew可以用来查看WebCam的视频信息,它包含了一个mjpeg的编码器,能够将视频流保存为AVI格式的文件。mjpeg的压缩效率并不高,且对带宽拥有较高要求,因而从今天来看,它并非一款理想的视频压缩技术。

    安装luvcvew:

    pi@raspberrypi ~$ sudo apt-get install luvcview

      输入下面的指令,让系统帮助我们找到luvcview在哪里。正常情况下,系统应该返回“/usr/bin/luvcview”,如果系统没有返回,再重新检查一下该插件是否已经安装妥当。

    pi@raspberrypi ~$ which luvcview  

      luvcview需要工作在桌面环境中,即Raspbian的LXDE中。luvcview默认采用640像素*480像素的分辨率进行视频采集,在实际应用中,我们发现如果采用这一分辨率,树莓派内存吃紧,卡顿的情况比较严重,因此我们需要降低WebCam采集的分辨率为320像素*240像素,在LXDE(LXTerminal)中:

    pi@raspberrypi ~$ luvcview -s 320x240

      执行完成之后,桌面上会弹出一个窗口,用来播放WebCam的视频信号。此时,我们再来观察一下桌面右上角CPU的使用情况,发现几乎已经全部被占用了,当然这也已经是在320像素*240像素分辨率的设置下,如果再调高分辨率,估计系统会返佣更慢。

    3、测试拍照

      在桌面环境下,本身就要耗费许多资源,实际上,Linux下许多图形、图像还是可以跑在Shell下的,下面我们就演示在Shell中调用摄像头进行拍照。需要使用另一个小工具——uvccapture。

    安装uvccapture:

    pi@raspberrypi ~$ sudo apt-get install uvccapture

    开始拍照:

    像素标准1:960*720

    pi@raspberrypi ~$ uvccapture -B120 -C40 -S30 -x960 -y720 -ocamera.jpg

      uvccapture携带的参数较多,其中,“-x,-y”为图像分辨率,“-B”为亮度(Brightness),"-C"为对比度(Contrast),“-S”为饱和度(Saturation),"-o"输出图像文件路径,"camera.jpg"为保存的照片文件名,默认保存在"/home/pi"目录下。

      当水平图像分辨率(x)超过960像素时,当垂直图像分辨率(y)超过720像素时,还需要使用YUYV方式进行拍照,此时相比于上述方式,除了需要修改像素参数意外,还要额外增加一个参数“-m”。

    像素标准2:1280*720

    pi@raspberrypi ~$ uvccapture -B120 -C40 -S30 -x1280 -y720 -m -ocamera.jpg

     测试效果:

  • 相关阅读:
    程序员面试中有几大法则
    实现立方体旋转
    为什么技术与产品沟通起来总是那么痛苦
    移动互联网下半场的面试真经,让你进入 BAT 不再是梦
    Javascript+H5实现打小地鼠游戏
    Python多进程应用
    Python数据分析笔记:聚类算法之K均值
    给新手程序员的16个工作必备小妙招,省下时间去LOL吧!
    MySQL数据库开发常见问题及优化
    java中的四种引用类型
  • 原文地址:https://www.cnblogs.com/lou424/p/4231321.html
Copyright © 2011-2022 走看看