close

在樹莓派5上使用 Libcamera 和 Picamera2 搭配 OpenCV 的完整教學

本教學帶您深入了解如何在樹莓派5(RP5)上結合 LibcameraPicamera2 使用 OpenCV 進行影像處理。

1. 前置準備

硬體需求

  • 樹莓派5(RP5)
  • 樹莓派相機模組

軟體需求

  • 樹莓派 OS(最新版本)
  • 已安裝 Libcamera 和 Picamera2
  • Python3 和 OpenCV

2. 安裝所需套件

使用以下指令更新系統並安裝必要套件:

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python3-opencv libcamera-apps python3-picamera2

  

驗證 OpenCV 是否安裝成功:

python3 -c "import cv2; print(cv2.__version__)"

  

如果看到版本號表示安裝成功。

3. Libcamera 與 Picamera2 的關係

Libcamera 是底層的相機驅動框架,而 Picamera2 是基於 Libcamera 的 Python 封裝。

架構關係

架構如下:

  • 硬體相機模組 → Libcamera → Picamera2(Python 封裝) → 應用程式

Picamera2 讓開發者輕鬆利用 Libcamera 的高效能並整合 Python 進行快速開發。

4. 使用 Picamera2 和 OpenCV

4.1 基本相機預覽與拍照

# 匯入必要模組
from picamera2 import Picamera2
import cv2

# 初始化相機
picam2 = Picamera2()
picam2.configure(picam2.create_preview_configuration())
picam2.start()

# 顯示相機畫面
while True:
    frame = picam2.capture_array()  # 獲取畫面陣列
    cv2.imshow("Preview", frame)  # 顯示畫面
    if cv2.waitKey(1) & 0xFF == ord('q'):  # 按下 'q' 鍵退出
        break

# 停止相機並釋放資源
picam2.stop()
cv2.destroyAllWindows()

  

程式解析

  • 初始化相機: 使用 Picamera2 建立相機實例並設定預覽配置。
  • 讀取畫面: 使用 picam2.capture_array 獲取相機畫面並使用 cv2.imshow 顯示。
  • 退出與釋放資源: 按下 'q' 鍵結束循環並釋放相機資源。

5. 常見問題與解決方法

Q: 影像延遲明顯?

嘗試降低解析度或設定較小的畫面大小。

6. 總結

結合 LibcameraPicamera2,您可以快速開發相機應用並整合 OpenCV 進行影像處理,充分發揮樹莓派的潛力。

arrow
arrow
    創作者介紹
    創作者 liusming 的頭像
    liusming

    劉老師的跨域創想工坊

    liusming 發表在 痞客邦 留言(0) 人氣()