Python | OpenCV 攝影機即時圖片讀取
📚 前言
在前一篇我們學會了 影像金字塔與多尺度分析。
這一篇要介紹如何使用 OpenCV 即時讀取攝影機圖片。
這是電腦視覺的基礎操作之一,常用於人臉偵測、物件追蹤、即時監控等應用。
即使沒有攝影機,也可以用影片檔或網路串流來模擬。
🔎 原理說明
- 即時讀取:透過
cv2.VideoCapture()連接來源,持續讀取影格 (frame)。 - 流程:
- 建立來源物件 (攝影機 / 影片檔 / 網路串流)。
- 迴圈讀取影格。
- 顯示影格。
- 按下指定按鍵結束程式。
🧠 函式與參數說明
📌 cv2.VideoCapture()
用途:建立攝影機物件,讀取即時影像。
1 | cap = cv2.VideoCapture(0) |
- 0:代表預設攝影機。
- 1, 2…:代表其他攝影機。
- cap:攝影機物件。
📌 cap.read()
用途:讀取一個影格。
1 | ret, frame = cap.read() |
- ret:是否成功讀取 (True/False)。
- frame:讀取到的影像。
📌 cv2.imshow()
用途:顯示影像。
1 | cv2.imshow("Camera", frame) |
- “Camera”:視窗名稱。
- frame:要顯示的影像。
💻 範例程式 — 即時讀取攝影機影像
1 | import cv2 |

圖:即時讀取攝影機影像並顯示
註:由於本身沒有攝影鏡頭,所以無法示範效果。
💻 範例程式 — 讀取影片檔
1 | import cv2 |

圖:從影片檔逐格讀取並顯示
💻 範例程式 — 讀取交通監視器 MJPEG 串流
1 | import cv2 |

圖:即時讀取交通監視器的 MJPEG 串流
⚠️ 注意事項
- 攝影機編號可能不同,
0是預設,若有多個攝影機可嘗試1、2。 cv2.VideoCapture()可讀取 攝影機、影片檔、網路串流。- MJPEG 串流需要網路連線,若 URL 無效或網路不通,會無法讀取。
- 即時圖片處理需要效能,建議在迴圈中避免過度複雜的運算。
📊 應用場景
- 人臉偵測:即時讀取並進行人臉辨識。
- 物件追蹤:即時追蹤移動物體。
- 監控系統:即時顯示並儲存圖片。
- 交通監控:讀取交通監視器串流,分析即時路況。
- 互動應用:即時影像結合 AR/VR。
🎯 結語
本篇我們學會了如何使用 OpenCV 即時讀取攝影機影像,並且能顯示影格。
即使沒有攝影機,也能用影片檔或網路串流來模擬。
這是電腦視覺的基礎操作,後續可以結合人臉偵測、物件追蹤等功能,打造更完整的應用。
📖 如在學習過程中遇到疑問,或是想了解更多相關主題,建議回顧一下 Python | OpenCV 系列導讀,掌握完整的章節目錄,方便快速找到你需要的內容。
