opencv-python打開USB或筆記本前置攝像頭
代碼
效果
Opencv-python攝像頭錄制視屏,拍照
Opencv-python攝像頭錄制視屏並保存
拍照
opencv-python打開USB或筆記本前置攝像頭代碼其中video_index是攝像頭編號,一般前置攝像頭為0,USB攝像頭為1或2.
import cv2def catch_video(name='my_video', video_index=0): # cv2.namedWindow(name) cap = cv2.VideoCapture(video_index) # 創建攝像頭識別類 if not cap.isOpened(): # 如果沒有檢測到攝像頭,報錯 raise Exception('Check if the camera is on.') while cap.isOpened(): catch, frame = cap.read() # 讀取每一幀圖片 cv2.imshow(name, frame) # 在window上顯示圖片 key = cv2.waitKey(10) if key & 0xFF == ord('q'): # 按q退出 break if cv2.getWindowProperty(name, cv2.WND_PROP_AUTOSIZE) < 1: # 點x退出 break # 釋放攝像頭 cap.release() cv2.destroyAllWindows()if __name__ == "__main__": catch_video()
效果Opencv-python攝像頭錄制視屏,拍照Opencv-python攝像頭錄制視屏並保存import cv2 # 導入opencv包video = cv2.VideoCapture(0) # 打開攝像頭fourcc = cv2.VideoWriter_fourcc(*'XVID') # 視頻存儲的格式fps = video.get(cv2.CAP_PROP_FPS) # 幀率# 視頻的寬高size = (int(video.get(cv2.CAP_PROP_FRAME_WIDTH)), int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)))out = cv2.VideoWriter('video.avi', fourcc, fps, size) # 視頻存儲f=0while out.isOpened(): ret, img = video.read() # 開始使用攝像頭讀數據,返回ret為true,img為讀的圖像 if ret is False: # ret為false則關閉 exit() cv2.namedWindow('video', cv2.WINDOW_AUTOSIZE) # 創建一個名為video的窗口 cv2.imshow('video', img) # 將捕捉到的圖像在video窗口顯示 out.write(img) # 將捕捉到的圖像存儲 print(f ,' ' , 'fps: ',fps) f+=1 # 按esc鍵退出程序 if cv2.waitKey(1) & 0xFF == 27: video.release() # 關閉攝像頭 break
拍照#coding:utf-8import cv2cap = cv2.VideoCapture(0)#創建一個 VideoCapture 對象flag = 1 #設置一個標志,用來輸出視頻信息num = 1 #遞增,用來保存文件名while(cap.isOpened()):#循環讀取每一幀 ret_flag, Vshow = cap.read() #返回兩個參數,第一個是bool是否正常打開,第二個是照片數組,如果只設置一個則變成一個tumple包含bool和圖片 cv2.imshow("Capture_Test",Vshow) #窗口顯示,顯示名為 Capture_Test k = cv2.waitKey(1) & 0xFF #每幀數據延時 1ms,延時不能為 0,否則讀取的結果會是靜態幀 if k == ord('s'): #若檢測到按鍵 ‘s',打印字符串 cv2.imwrite("/home/jie/圖片/VOC/image/"+ str(num) + ".jpg", Vshow) print(cap.get(3)); #得到長寬 print(cap.get(4)); print("success to save"+str(num)+".jpg") print("-------------------------") num += 1 elif k == ord('q'): #若檢測到按鍵 ‘q',退出 breakcap.release() #釋放攝像頭
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持軟件開發網。