OpenCV 影像辨識入門教材

介紹 OpenCV 的基本安裝、影像讀取、攝影機擷取、灰階、邊緣偵測、輪廓、臉部辨識與課堂應用。

很適合搭配 Raspberry Pi 與 1080p Web CAM 進行影像處理入門教學。

OpenCVPythonWeb CAMComputer Vision

一、OpenCV 是什麼

二、安裝 OpenCV

python3 -m venv venv
source venv/bin/activate
python3 -m pip install opencv-python
建議使用虛擬環境,避免系統 Python 套件混亂。

三、讀取圖片

import cv2
img = cv2.imread('test.jpg')
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、讀取 Webcam 畫面

import cv2
cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('Webcam', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

五、灰階與邊緣偵測

import cv2
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)
cv2.imshow('Gray', gray)
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

六、影像存檔

import cv2
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.jpg', gray)

七、輪廓偵測概念

import cv2
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 2)
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

八、臉部辨識入門

import cv2
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    if not ret:
        break
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x,y), (x+w, y+h), (0,255,0), 2)
    cv2.imshow('Face Detection', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
這是入門版偵測,不是高精度 AI 辨識,但非常適合教學展示。

九、適合課堂專題的延伸

十、常見錯誤

問題原因解法
抓不到相機索引錯誤或裝置未偵測確認 /dev/video0 與 Webcam 是否存在
無法顯示視窗圖形環境限制確認桌面環境或改用存檔測試
模組找不到OpenCV 未安裝到正確環境重新確認 venv 與 pip 安裝位置

十一、推薦參考