使用opencv-python如何打開(kāi)USB或者筆記本前置攝像頭
opencv-python打開(kāi)USB或筆記本前置攝像頭
代碼
其中video_index是攝像頭編號(hào),一般前置攝像頭為0,USB攝像頭為1或2.
import cv2 def catch_video(name='my_video', video_index=0): # cv2.namedWindow(name) cap = cv2.VideoCapture(video_index) # 創(chuàng)建攝像頭識(shí)別類 if not cap.isOpened(): # 如果沒(méi)有檢測(cè)到攝像頭,報(bào)錯(cuò) 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: # 點(diǎn)x退出 break # 釋放攝像頭 cap.release() cv2.destroyAllWindows() if __name__ == "__main__": catch_video()
效果
Opencv-python攝像頭錄制視屏,拍照
Opencv-python攝像頭錄制視屏并保存
import cv2 # 導(dǎo)入opencv包 video = cv2.VideoCapture(0) # 打開(kāi)攝像頭 fourcc = cv2.VideoWriter_fourcc(*'XVID') # 視頻存儲(chǔ)的格式 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) # 視頻存儲(chǔ) f=0 while out.isOpened(): ret, img = video.read() # 開(kāi)始使用攝像頭讀數(shù)據(jù),返回ret為true,img為讀的圖像 if ret is False: # ret為false則關(guān)閉 exit() cv2.namedWindow('video', cv2.WINDOW_AUTOSIZE) # 創(chuàng)建一個(gè)名為video的窗口 cv2.imshow('video', img) # 將捕捉到的圖像在video窗口顯示 out.write(img) # 將捕捉到的圖像存儲(chǔ) print(f ,' ' , 'fps: ',fps) f+=1 # 按esc鍵退出程序 if cv2.waitKey(1) & 0xFF == 27: video.release() # 關(guān)閉攝像頭 break
拍照
#coding:utf-8 import cv2 cap = cv2.VideoCapture(0)#創(chuàng)建一個(gè) VideoCapture 對(duì)象 flag = 1 #設(shè)置一個(gè)標(biāo)志,用來(lái)輸出視頻信息 num = 1 #遞增,用來(lái)保存文件名 while(cap.isOpened()):#循環(huán)讀取每一幀 ret_flag, Vshow = cap.read() #返回兩個(gè)參數(shù),第一個(gè)是bool是否正常打開(kāi),第二個(gè)是照片數(shù)組,如果只設(shè)置一個(gè)則變成一個(gè)tumple包含bool和圖片 cv2.imshow("Capture_Test",Vshow) #窗口顯示,顯示名為 Capture_Test k = cv2.waitKey(1) & 0xFF #每幀數(shù)據(jù)延時(shí) 1ms,延時(shí)不能為 0,否則讀取的結(jié)果會(huì)是靜態(tài)幀 if k == ord('s'): #若檢測(cè)到按鍵 ‘s',打印字符串 cv2.imwrite("/home/jie/圖片/VOC/image/"+ str(num) + ".jpg", Vshow) print(cap.get(3)); #得到長(zhǎng)寬 print(cap.get(4)); print("success to save"+str(num)+".jpg") print("-------------------------") num += 1 elif k == ord('q'): #若檢測(cè)到按鍵 ‘q',退出 break cap.release() #釋放攝像頭
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用Python修改matplotlib.pyplot.colorbar的位置以對(duì)齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見(jiàn)的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對(duì)齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07python os.listdir按文件存取時(shí)間順序列出目錄的實(shí)例
今天小編就為大家分享一篇python os.listdir按文件存取時(shí)間順序列出目錄的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python 字符串大小寫(xiě)轉(zhuǎn)換的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇Python 字符串大小寫(xiě)轉(zhuǎn)換的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Python PyQt5運(yùn)行程序把輸出信息展示到GUI圖形界面上
這篇文章主要介紹了Python PyQt5運(yùn)行程序把輸出信息展示到GUI圖形界面上,本文通過(guò)截圖實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04drf-router和authenticate認(rèn)證源碼分析
在 Rest Framework 中提供了兩個(gè) router , 可以幫助我們快速的實(shí)現(xiàn)路由的自動(dòng)生成,本文通過(guò)實(shí)例代碼給大家介紹drf-router和authenticate認(rèn)證源碼分析,感興趣的朋友跟隨小編一起看看吧2021-07-07解決python 讀取excel時(shí) 日期變成數(shù)字并加.0的問(wèn)題
這篇文章主要介紹了python 讀取excel時(shí), 日期變成數(shù)字并加.0的問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10python ForMaiR實(shí)現(xiàn)自定義規(guī)則的郵件自動(dòng)轉(zhuǎn)發(fā)工具
這篇文章主要為大家介紹了python ForMaiR實(shí)現(xiàn)自定義規(guī)則的郵件自動(dòng)轉(zhuǎn)發(fā)工具示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python分析彩票記錄并預(yù)測(cè)中獎(jiǎng)號(hào)碼過(guò)程詳解
這篇文章主要介紹了Python分析彩票記錄并預(yù)測(cè)中獎(jiǎng)號(hào)碼過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Python 稀疏矩陣-sparse 存儲(chǔ)和轉(zhuǎn)換
這篇文章主要介紹了Python 稀疏矩陣-sparse 存儲(chǔ)和轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2017-05-05