Skip to content

OpenCV簡介

OpenCV(Open Source Computer Vision Library)最強大的影像處理與電腦視覺庫,適合即時影像處理、物件偵測、特徵提取等應用。

特色

  • 速度快:使用 C++ 實作,效能優異
  • 功能豐富:支援影像處理、視覺分析、機器學習
  • 支援影片處理:適用於即時影像應用(如人臉辨識、物件追蹤)

✅ 1. 安裝 OpenCV

pip install opencv-python

如果需要 影像編解碼功能(如 GIF, TIFF),可以安裝完整版:

pip install opencv-python-headless

✅ 2. 讀取與顯示圖片

OpenCV 使用 cv2.imread() 讀取圖片:

import cv2

img = cv2.imread("example.jpg")  # 讀取圖片
cv2.imshow("Image", img)  # 顯示圖片
cv2.waitKey(0)  # 等待鍵盤輸入後關閉
cv2.destroyAllWindows()  # 關閉所有 OpenCV 視窗

注意:OpenCV 預設讀取圖片為 BGR 格式,而非 RGB,需要轉換!


✅ 3. 轉換色彩格式

img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 轉換為 RGB
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 轉換為灰階

OpenCV 預設使用 BGR,而大部分的影像處理工具(如 Matplotlib、Pillow)使用 RGB。


✅ 4. 影像縮放與旋轉

resized = cv2.resize(img, (300, 300))  # 調整大小
rotated = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)  # 旋轉 90 度

適用於影像前處理,如調整輸入大小。


✅ 5. 影像濾波(模糊處理)

blurred = cv2.GaussianBlur(img, (5, 5), 0)  # 高斯模糊
cv2.imshow("Blurred Image", blurred)
cv2.waitKey(0)
cv2.destroyAllWindows()

適用於降噪與影像增強。


✅ 6. 邊緣偵測(Canny 演算法)

edges = cv2.Canny(img, 100, 200)  # 設定低/高閾值
cv2.imshow("Edges", edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

適用於物件邊界檢測、特徵提取。


✅ 7. 讀取影片

cap = cv2.VideoCapture("video.mp4")

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow("Video", frame)

    if cv2.waitKey(25) & 0xFF == ord("q"):  # 按 Q 退出
        break

cap.release()
cv2.destroyAllWindows()

適用於即時影像處理與視覺分析。


📝 總結

功能 函數
讀取圖片 cv2.imread("image.jpg")
顯示圖片 cv2.imshow("Title", img), cv2.waitKey(0)
轉換色彩格式 cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
縮放圖片 cv2.resize(img, (width, height))
旋轉圖片 cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
模糊處理 cv2.GaussianBlur(img, (5,5), 0)
邊緣偵測 cv2.Canny(img, 100, 200)
讀取影片 cv2.VideoCapture("video.mp4")

🚀 OpenCV 適用於高效影像處理、即時影像分析與電腦視覺應用! 😊