DigiHouse
繁體中文

TECH ARTICLE · NCU · 3 MIN READ

Blog / NCU

第 15 課|在 Raspberry Pi 5 使用 Libcamera、Picamera2 與 OpenCV

在 Raspberry Pi 5 使用 Libcamera、Picamera2 與 OpenCV。本文已重新整理為適合 DigiHouse 閱讀的課程文章,並保留原始 PIXNET 刊載網址。

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

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

1. 前置準備

硬體需求

• 樹莓派5(RP5)

• 樹莓派相機模組

軟體需求

• 樹莓派 OS(最新版本)

• 已安裝 Libcamera 和 Picamera2

• Python3 和 OpenCV

2. 安裝所需套件

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

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

驗證 OpenCV 是否安裝成功:

text
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 基本相機預覽與拍照

text
# 匯入必要模組
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. 總結

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

劉老師的跨域創想工坊

本文亦刊載於 PIXNET

https://liusming.pixnet.net/blog/posts/14222875794

第 12 課|在 Raspberry Pi 5 使用 Libcamera、Picamera2 與 OpenCV | DigiHouse