zoukankan      html  css  js  c++  java
  • 树莓派用python打开摄像头测试的两种方式附例程

    简介

    树莓派用python打开摄像头常用两种方法,一种是使用picamare库,另一种是使用OpenCV的库,本文分别介绍两种方式

    方式一:picamare

    1.代码如下:

    from picamera import PiCamera
    import time
    
    camera = PiCamera()
    camera.start_preview()
    time.sleep(10)
    camera.stop_preview()
    
    1. 代码解析
      本例程为打开摄像头显示十秒画面,然后关闭预览

    此方法注意如果使用VNC远程运行,会出现原画面有图像,但VNC无图像的情况,此时需要在树莓派端的VNC内修改VNC的模式,由传输指令变更为传输画面,但VNC会非常卡顿,慎用。解决方式参考这篇文章
    树莓派远程连接工具VNC不显示视频或摄像头画面解决方式

    方式二:OpenCV

    1. 代码如下
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    机器人摄像头测试demo
    1.打开摄像头画面;
    2.按键q退出程序,s保存照片
    3.可作为程序基础框架使用
    """
    __author__ = "River.Yang"
    __date__ = "2021/3/24"
    __version__ = "1.0"
    
    from picamera.array import PiRGBArray
    from picamera import PiCamera
    import cv2
    
    # define resolution
    resX = 640
    resY = 480
    
    def main():
        # 照片存储序列计数
        count = 0
        # 版本管理
        print("当前版本:", __version__)
        # 初始化摄像头
        camera = PiCamera()
        camera.resolution = (resX, resY)
        camera.framerate = 30
        # Use this as our output
        rawCapture = PiRGBArray(camera, size=(resX, resY))
    
        # capture frames from the camera
        for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
            image = frame.array
    
            # show the frame
            cv2.imshow("Raw Frame", image)
    
            # if the `q` key was pressed, break from the loop
            key = cv2.waitKey(1) & 0xFF
            if key == ord("q"):
                break
            if key == ord("s"):
                count = count + 1
                cv2.imwrite("testbak" + str(count) + ".jpg", image)
                print("save success")
    
            # clear the stream in preparation for the next frame
            rawCapture.truncate(0)
    
        # When everything done, release the capture
        cv2.destroyAllWindows()
    
    
    if __name__ == '__main__':
        main()
    
    
    1. 代码解析
      本例程还是用了picamera作为初始数据传给OpenCV进行调用,代码功能:打开摄像头画面;按键q退出程序,s保存照片。

    .
    .
    .
    .
    欢迎各位老铁一键三连,本号后续会不断更新树莓派、人工智能、STM32、ROS小车相关文章和知识。

    大家对感兴趣的知识点可以在文章下面留言,我可以优先帮大家讲解哦

    原创不易,转载请说明出处。

  • 相关阅读:
    几个不错的学习网址不断更新中
    重构之美-跨越Web标准,触碰语义网[分离:通用也许是个美丽陷阱]
    在APP中分享小程序和在企微中分享小程序到对话聊天框需要做哪些配置
    第三方平台授权小程序遇到的问题
    第三方授权小程序,将小程序代码推到第三方平台流程以及需要配置哪些东西
    html5专题页
    lua字符串格式化多参用法
    lua三目运算符逻辑盲点
    部分数学符号
    常用软件链接
  • 原文地址:https://www.cnblogs.com/ChuanYangRiver/p/15329875.html
Copyright © 2011-2022 走看看