樹莓派用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小車相關文章和知識。

大家對感興趣的知識點可以在文章下面留言,我可以優先幫大家講解哦

原創不易,轉載請說明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM