Python基于opencv調(diào)用攝像頭獲取個人圖片的實現(xiàn)方法
接觸圖像領(lǐng)域的應(yīng)該對于opencv都不會感到陌生,這個應(yīng)該算是功能十分強勁的一個算法庫了,當(dāng)然了,使用起來也是很方便的,之前使用Windows7的時候出現(xiàn)多該庫難以安裝成功的情況,現(xiàn)在這個問題就不存在了,需要安裝包的話可以去我的資源中下載使用,使用pip安裝方式十分地便捷。
今天是基于opencv模塊來調(diào)用筆記本的內(nèi)置攝像頭,然后從視頻流中獲取到人臉的圖像數(shù)據(jù)用于之后的人臉識別項目,也就是為了構(gòu)建可用的數(shù)據(jù)集。整個實現(xiàn)過程并不復(fù)雜,具體如下:
#!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能: Python opencv調(diào)用攝像頭獲取個人圖片 使用方法: 啟動攝像頭后需要借助鍵盤輸入操作來完成圖片的獲取工作 c(change): 生成存儲目錄 p(photo): 執(zhí)行截圖 q(quit): 退出拍攝 OpenCV簡介 1、videoCapture()方法打開攝像 攝像頭變量 cv2.VideoCapture(n) n為整數(shù)內(nèi)置攝像頭為0,若有其他攝像頭則依次為1,2,3,... cap=cv2.VideoCapture(0) 打開內(nèi)置攝像頭 2、cap.isOpened()方法判斷攝像頭是否處于打開,返回結(jié)果為:True、False 3、ret,img=cap.read() 讀取圖像 布爾變量,圖像變量=cap.read() 4、cap.release() 釋放攝像頭 5、action=cv2.waitKey(n) 獲取用戶輸入,同時可獲取按鍵的ASCLL碼值 ''' import os import cv2 import sys reload(sys) sys.setdefaultencoding('utf-8') def cameraAutoForPictures(saveDir='data/'): ''' 調(diào)用電腦攝像頭來自動獲取圖片 ''' if not os.path.exists(saveDir): os.makedirs(saveDir) count=1 #圖片計數(shù)索引 cap=cv2.VideoCapture(0) width,height,w=640,480,360 cap.set(cv2.CAP_PROP_FRAME_WIDTH,width) cap.set(cv2.CAP_PROP_FRAME_HEIGHT,height) crop_w_start=(width-w)//2 crop_h_start=(height-w)//2 print 'width: ',width print 'height: ',height while True: ret,frame=cap.read() #獲取相框 frame=frame[crop_h_start:crop_h_start+w,crop_w_start:crop_w_start+w] #展示相框 frame=cv2.flip(frame,1,dst=None) #前置攝像頭獲取的畫面是非鏡面的,即左手會出現(xiàn)在畫面的右側(cè),此處使用flip進(jìn)行水平鏡像處理 cv2.imshow("capture", frame) action=cv2.waitKey(1) & 0xFF if action==ord('c'): saveDir=raw_input(u"請輸入新的存儲目錄:") if not os.path.exists(saveDir): os.makedirs(saveDir) elif action==ord('p'): cv2.imwrite("%s/%d.jpg" % (saveDir,count),cv2.resize(frame, (224, 224),interpolation=cv2.INTER_AREA)) print(u"%s: %d 張圖片" % (saveDir,count)) count+=1 if action==ord('q'): break cap.release() #釋放攝像頭 cv2.destroyAllWindows() #丟棄窗口 if __name__=='__main__': cameraAutoForPictures(saveDir='data/')
上述代碼的運行環(huán)境需要是Python2,因為python2中才有reload方法,去掉那些語句就可以在Python3中執(zhí)行了,我們在Python2的環(huán)境中執(zhí)行結(jié)果截圖如下:
我的保存路徑是data,按q退出后,進(jìn)入data文件夾下就可以看到自己的“靚照”了哈,好了數(shù)據(jù)集準(zhǔn)備到此結(jié)束,接下來準(zhǔn)備實戰(zhàn)人臉識別。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
python利用pd.cut()和pd.qcut()對數(shù)據(jù)進(jìn)行分箱操作
本文主要介紹了python利用pd.cut()和pd.qcut()對數(shù)據(jù)進(jìn)行分箱操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Python中POST調(diào)用Restful接口示例
這篇文章主要介紹了Python之POST調(diào)用Restful接口示例,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02Python多進(jìn)程并發(fā)與多線程并發(fā)編程實例總結(jié)
這篇文章主要介紹了Python多進(jìn)程并發(fā)與多線程并發(fā)編程,結(jié)合實例形式總結(jié)分析了Python編程中的多進(jìn)程并發(fā)與多線程并發(fā)相關(guān)概念、使用方法與操作注意事項,需要的朋友可以參考下2018-02-02TensorFlow2.X使用圖片制作簡單的數(shù)據(jù)集訓(xùn)練模型
這篇文章主要介紹了TensorFlow2.X使用圖片制作簡單的數(shù)據(jù)集訓(xùn)練模型,本文通過截圖實例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04