AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图
寫在前邊
想要做一個(gè)AI質(zhì)檢的項(xiàng)目,一點(diǎn)一點(diǎn)來,首先:python利用OpenCV打開攝像頭并拍照。
效果
設(shè)攝像頭像素不咋地,實(shí)際的產(chǎn)品肯定不會是這個(gè)像素,必須安排一個(gè)專業(yè)的。
實(shí)現(xiàn)代碼
import cv2 as cvdef video_demo():capture = cv.VideoCapture(0)width, height = capture.get(3), capture.get(4)capture.set(cv.CAP_PROP_FRAME_WIDTH, width * 1.5)capture.set(cv.CAP_PROP_FRAME_HEIGHT, height * 1.5)index=0while True:ret, frame = capture.read()frame = cv.flip(frame, 1)cv.imshow("video", frame)if cv.waitKey(1)== ord('s'):cv.imwrite("./image/"+str(index)+".jpg", frame)index+=1if cv.waitKey(1)== 27:cv.destroyAllWindows()breakif __name__=="__main__":video_demo()代碼分析
函數(shù):VideoCapture(0)
要使用攝像頭,需要使用cv2.VideoCapture(0)創(chuàng)建VideoCapture對象,參數(shù)0指的是攝像頭的編號,如果電腦上有兩個(gè)攝像頭的話,訪問第2個(gè)攝像頭就可以傳入1,依此類推。
capture = cv.VideoCapture(0)函數(shù):get()
通過capture.get(propId)可以獲取攝像頭的一些屬性,比如捕獲的分辨率,亮度和對比度等。
propId是從0~18的數(shù)字,代表不同的屬性,完整的屬性列表可以參考:VideoCaptureProperties(https://docs.opencv.org/3.3.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d)。
也可以使用capture.set(propId,value)來修改屬性值。
函數(shù):set()
通過獲得的分辨率設(shè)置窗口的大小。
capture.set(cv.CAP_PROP_FRAME_WIDTH, width * 1.5)capture.set(cv.CAP_PROP_FRAME_HEIGHT, height * 1.5)函數(shù):read()
讀取攝像頭,它能返回兩個(gè)參數(shù),第一個(gè)參數(shù)是bool型的ret,其值為True或False,代表有沒有讀到圖片;第二個(gè)參數(shù)是frame,是當(dāng)前截取一幀的圖片
ret, frame = capture.read()函數(shù):frame = cv.flip(frame, 1)
表示翻轉(zhuǎn)
0:上下顛倒 大于0:水平顛倒 小于0:180旋轉(zhuǎn)保存圖片
通過按下s鍵在指定路徑下按編號保存圖片。
后期將通過深度學(xué)習(xí)讓攝像頭自動(dòng)監(jiān)測窗口中是否有目標(biāo)出現(xiàn),如果有,則保存此時(shí)的一系列照片。
實(shí)現(xiàn)退出功能
通過按下Esc鍵退出并銷毀窗口。
if cv.waitKey(1)== 27:cv.destroyAllWindows()break總結(jié)
以上是生活随笔為你收集整理的AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI 质检学习报告——学习篇——AI质检
- 下一篇: PaddlePaddle训练营——公开课