OpenCV簡介
OpenCV(Open Source Computer Vision Library) 是 最強大的影像處理與電腦視覺庫,適合即時影像處理、物件偵測、特徵提取等應用。
特色:
- 速度快:使用 C++ 實作,效能優異
- 功能豐富:支援影像處理、視覺分析、機器學習
- 支援影片處理:適用於即時影像應用(如人臉辨識、物件追蹤)
✅ 1. 安裝 OpenCV
如果需要 影像編解碼功能(如 GIF, TIFF),可以安裝完整版:
✅ 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 適用於高效影像處理、即時影像分析與電腦視覺應用! 😊