樹莓派上CSI攝像頭的使用


由於工程設計要用到樹莓派的攝像頭進行識別操作,本文將使用Python+OpenCV+Raspi 3B+ 來完成樹莓派CSI攝像頭的配置使用,以及后續的擴展操作(樹莓派照相機)。

CSI攝像頭的連接

將排線的接口查在樹莓派上的對應位置即可,如下圖。

在樹莓派上使能攝像頭功能

一般有兩種方法,在這里我們采用一種博主認為比較方便的方法。

在命令行中輸入:

$ sudo raspi-config

然后在【Enable Camera】一欄里,設置為TRUE即可,此時樹莓派要重啟哦。

攝像頭的調試

測試攝像頭是否能夠正常使用,這時候我們可以利用Raspberry Pi給我們的raspistill來驗證是否能夠使用。

$ raspistill -o test.jpg

在/home/目錄下會生成test.jpg文件,同時會出現攝像頭的畫面。

利用Python庫操作攝像頭

這里,如果你想直接用OpenCV來 操作攝像頭,需進行如下設置(因為樹莓派中的camera module是放在/boot/目錄中以固件形式加載的,不是一個標准的V4L2的攝像頭驅動):

sudo nano /etc/modules  

添加一行:bcm2835-v4l2
保存退出,重啟樹莓派,這時就可直接用OpenCV來直接操作攝像頭啦(未測試是否有bug),這里默認讀者在此前已經接觸過OpenCV了🤗。

如果你不想進行上述設置,可以采用下邊的方法。在命令行輸入:

$ pip install picamera

安裝成功后,我們可以新建一個Python文件,輸入以下代碼測試(用攝像頭拍攝一張照片):

  from picamera.array import PiRGBArray
  from picamera import PiCamera
  import time
  import cv2
  ​
  camera = PiCamera()
  rawCapture = PiRGBArray(camera)
  time.sleep(0.1)
  camera.capture(rawCapture, format="bgr")
  image = rawCapture.array

  cv2.imshow("Image", image)
  cv2.waitKey(0)

獲取視頻流的代碼:

from picamera.array import PiRGBArray
  from picamera import PiCamera
  import time
  import cv2
   
  camera = PiCamera()
  camera.resolution = (640, 480)
  camera.framerate = 32
  rawCapture = PiRGBArray(camera)
   
  time.sleep(0.1)
   
  # 獲取圖片
  for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
      image = frame.array
   
      # 顯示
      cv2.imshow("Frame", image)
      key = cv2.waitKey(1) & 0xFF
   
      # 清空緩存
      rawCapture.truncate(0)
   
      # 如果按到鍵盤字母'q'就退出循環
      if key == ord("q"):
          break

以上就是CSI攝像頭的基本操作哦,如果你想通過觸摸屏來做一個基於樹莓派的照相機,給大家提供一個基本思路,用QTDesigner結合Python的PYQT5庫來設計~~

本文結束,感謝閱讀~~


免責聲明!

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



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