Opencv基礎之②用攝像頭捕獲圖像(Python實現)
QQ:3020889729 小蔡
才學習opencv沒多久,本意是積累和回顧,望大神/大佬勿怪~
攝像頭捕獲圖像的主要函數
- cv2.VideoCapture(x)——默認x填爲0,作爲啓用本機攝像頭——你可以設置1,啓用其它攝像頭/甚至可以傳入文件
- cap.isOpened()——判斷是否攝像設備/視頻源是否打開——打開返回true
- cap.read()——讀取視頻源/設備讀取的數據的幀圖像——返回兩個參數:第一個爲是否讀取到幀圖像,第二個爲幀圖像
- imshow(x,y)——這裏用來顯示讀取到的幀圖像——前參數爲窗口標題,後參數爲圖像
實例
務必記住一件事:開啓視頻(video)源,就要記得在結束時關閉視頻源(也就是釋放捕獲)!
import cv2
cap = cv2.VideoCapture(0) # 默認參數0,爲本機攝像頭——即計算機攝像頭/也可以傳入非零數據,置換其它多媒體端口
if not cap.isOpened():
print("正在打開(初始化)攝像頭!")
else:
while True:
ret, frame = cap.read()
if not ret: # 如果沒獲取了幀圖像就退出
print("幀無法獲取(the end of video stream ),正在退出")
break
else:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 獲取灰度圖像——cvtColor顏色控制,返回一個圖像
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('Q'): # 如果按下Q按鍵,quit中斷視頻獲取
break
cap.release() # 釋放捕獲
cv2.destroyAllWindows() # 摧毀全部窗體