美文网首页神经网络
IOT设备AI搭建5:树莓派安装摄像头和使用

IOT设备AI搭建5:树莓派安装摄像头和使用

作者: 古风子 | 来源:发表于2020-04-18 14:54 被阅读0次

    树莓派使用的是3B+

    1. 将摄像头硬件正确的安装到板子上

    2. 检查摄像头是否正确安装

    $ vcgencmd get_camera
    supported=1 detected=1
    

    detected=1表示已经检测到摄像头

    3. 添加驱动程序文件

    sudo vim /etc/modules
    

    在文件的最后一行添加bcm2835-v412;添加后的文件内容为:

    i2c-dev
    bcm2835-v412
    

    4. 运行配置项设置程序

    sudo raspi-config
    

    选择5 interfacting Options
    进入后,选择P1 Camera

    设置完后,重启设备,

    6. 抓取图片

    运行以下命令抓取图片

    raspistill -o image.jpg -tl 5000
    //raspistill -o image%d.jpg -rot 0 -w 300 -h 300 -t 5000 -tl 5000 -v
    

    抓取的图片效果为:


    image

    常用参数意义:
    -v:调试信息查看
    -w:图像宽度
    -h:图像高度
    -rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
    -o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
    -t:获取图像前等待时间,默认为5000,即5秒
    -tl:多久执行一次图像抓取

    7. 生成h246文件

    使用raspivid指令来生成.h246的文件

    raspivid -o imagechain.h264
    
    

    这样就会在当前文件夹下面生成imagechain.h264的文件,默认时间是5秒;可以设置录制的视频宽高和时间(raspivid --help)

    "-t" 选项来设置你想要的长度就行了(单位是毫秒)。
    "-w" 和 "-h" 选项设置分辨率

    8.安装和使用opencv

    安装opencv

    sudo apt-get install libopencv-dev
    sudo apt-get install python-opencv
    

    测试是否安装成功

    ython
    Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
    [GCC 6.3.0 20170516] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cv2
    >>> cv2.__version__
    '2.4.9.1'
    >>> 
    
    

    opencv测试相机预览
    opencv.py

    # import the necessary packages
    from picamera.array import PiRGBArray
    from picamera import PiCamera
    import time
    import cv2
    
    # initialize the camera and grab a reference to the raw camera capture
    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.framerate = 32
    rawCapture = PiRGBArray(camera, size=(640, 480))
    
    # allow the camera to warmup
    time.sleep(0.1)
    
    # capture frames from the camera
    for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
        # grab the raw NumPy array representing the image, then initialize the timestamp
        # and occupied/unoccupied text
        image = frame.array
    
        # show the frame
        cv2.imshow("Frame", image)
        key = cv2.waitKey(1) & 0xFF
    
        # clear the stream in preparation for the next frame
        rawCapture.truncate(0)
    
        # if the `q` key was pressed, break from the loop
        if key == ord("q"):
            break 
    
    
    

    相关文章

      网友评论

        本文标题:IOT设备AI搭建5:树莓派安装摄像头和使用

        本文链接:https://www.haomeiwen.com/subject/aoxvvhtx.html