美文网首页
树莓派3B基于opencv3.4实现 python27 捕获us

树莓派3B基于opencv3.4实现 python27 捕获us

作者: 生活科技 | 来源:发表于2018-01-11 12:01 被阅读0次

    一、环境搭建(略)

    首先还是树莓派的环境安装,实现打开摄像头的基础就是必须安装好环境。
    一个是python 2.7,需要安装numpy支持;另一个是获取摄像头会用到opencv,opencv是计算机视觉库(树莓派安装的是最新的3.5版本opencv)。

    二、实现过程

    ython通过opencv 模块来打开摄像头,代码精简,比较容易理解;

    整体思路:
    1.导入所需的numpy和opencv的模块。

    2.获取视频流

    3.读取获得的视频流,并且通过窗体显示出来

    4.释放获取对象,关闭窗口
    整个程序的源代码如下:

    # created by Lang  based on python 2.7
    ## 11/01/2018 11:05:45 
    import cv2
    import numpy as np
    
    cap = cv2.VideoCapture(0)
    while(1):
        # get a frame
        ret, frame = cap.read()
        # show a frame
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    cap.release()
    cv2.destroyAllWindows() 
    
    

    还有个phthon3版本

    import numpy as np
    import cv2
    
    cap = cv2.VideoCapture(0) # 从摄像头中取得视频
    
    # 获取视频播放界面长宽
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH) + 0.5)
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT) + 0.5)
    
    # 定义编码器 创建 VideoWriter 对象
    fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Be sure to use the lower case
    out = cv2.VideoWriter('output.mp4', fourcc, 20.0, (width, height))
    
    while(cap.isOpened()):
        #读取帧摄像头
        ret, frame = cap.read()
        if ret == True:
            #输出当前帧
            out.write(frame)
    
            cv2.imshow('My Camera',frame)
    
            #键盘按 Q 退出
            if (cv2.waitKey(1) & 0xFF) == ord('q'):
                break
        else:
            break
    
    # 释放资源
    out.release()
    cap.release()
    cv2.destroyAllWindows()
    

    编写这个程序过程中,感觉到python语言是如此简洁,短短几句代码就可以实现这样的功能,感觉实在是太强了。

    相关文章

      网友评论

          本文标题:树莓派3B基于opencv3.4实现 python27 捕获us

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