Raspberry Pi 使用攝影機教學

介紹 Raspberry Pi 使用 USB Webcam 或相機模組的基本方法,包含安裝、偵測、拍照、錄影、串流與 Python 控制。

適合搭配你目前課程中的 1080p Web CAM 做教學與專題延伸。

Raspberry Pi Web CAM Python 影像應用

一、教學目標

二、兩種常見攝影機來源

類型 說明 適用情境
USB Webcam透過 USB 連接,安裝方便目前你的 1080p Web CAM 就屬於這種
Raspberry Pi Camera Module透過 CSI 介面連接,整合度較高適合官方相機模組教學
以你目前的材料來說,USB Webcam 是最直接可用的教學方式。

三、確認系統是否偵測到攝影機

lsusb
v4l2-ctl --list-devices

若尚未安裝工具:

sudo apt update
sudo apt install -y v4l-utils fswebcam ffmpeg
如果沒看到攝影機裝置,先檢查 USB 線材、供電、是否使用 USB Hub 造成供電不足。

四、測試拍照

使用 fswebcam

fswebcam -r 1280x720 --no-banner test.jpg

如果要 1080p

fswebcam -r 1920x1080 --no-banner webcam_1080p.jpg

拍完後可檢查:

ls -lh *.jpg

五、錄影範例

可使用 ffmpeg 錄下 Webcam 畫面:

ffmpeg -f video4linux2 -i /dev/video0 -t 10 output.mp4

這代表從 /dev/video0 擷取 10 秒影像並輸出成 mp4。

六、以 Python 讀取攝影機畫面

安裝 OpenCV

python3 -m pip install opencv-python

基本範例

import cv2

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    if not ret:
        print("無法讀取畫面")
        break

    cv2.imshow("Webcam", frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
這是影像處理課程最常用的起點,後續可加上拍照、存檔、辨識與串流。

七、用 Python 拍照存檔

import cv2

cap = cv2.VideoCapture(0)
ret, frame = cap.read()

if ret:
    cv2.imwrite("snapshot.jpg", frame)
    print("已儲存 snapshot.jpg")
else:
    print("拍照失敗")

cap.release()

八、簡單動態偵測概念

可比對連續兩張影像的差異,判斷畫面是否有移動。這是很多監控系統的入門做法。

import cv2

cap = cv2.VideoCapture(0)
ret, frame1 = cap.read()
ret, frame2 = cap.read()

while ret:
    diff = cv2.absdiff(frame1, frame2)
    gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
    _, thresh = cv2.threshold(gray, 25, 255, cv2.THRESH_BINARY)

    if thresh.sum() > 500000:
        print("偵測到畫面變化")

    frame1 = frame2
    ret, frame2 = cap.read()
這只是入門示意,實際專題通常還要加入雜訊過濾、框選物體、存檔或通知機制。

九、建立簡單串流服務的方向

若要最容易上手的教學方向,通常會推薦:

  1. 先用 OpenCV 本地顯示畫面
  2. 再用 Python 存圖
  3. 最後用 Flask 做網頁串流

十、課堂可以延伸的專題

十一、常見問題與排除

問題 可能原因 建議
抓不到攝影機設備未偵測或供電不足先用 lsusbv4l2-ctl --list-devices 檢查
畫面黑屏裝置被其他程式占用關閉其他影像程式後重試
解析度無法到 1080pWebcam 或驅動限制先查看支援格式與解析度
OpenCV 安裝失敗套件環境問題建議使用虛擬環境安裝

十二、推薦參考資源

十三、結語

Raspberry Pi 加上 1080p Web CAM,非常適合拿來做影像入門教學。只要學生先會偵測、拍照、錄影與 OpenCV 讀圖,後面要做監控、辨識、串流或智慧門鈴都能順利接上。