Python基于opencv調(diào)用攝像頭獲取個(gè)人圖片的實(shí)現(xiàn)方法
接觸圖像領(lǐng)域的應(yīng)該對(duì)于opencv都不會(huì)感到陌生,這個(gè)應(yīng)該算是功能十分強(qiáng)勁的一個(gè)算法庫(kù)了,當(dāng)然了,使用起來(lái)也是很方便的,之前使用Windows7的時(shí)候出現(xiàn)多該庫(kù)難以安裝成功的情況,現(xiàn)在這個(gè)問(wèn)題就不存在了,需要安裝包的話可以去我的資源中下載使用,使用pip安裝方式十分地便捷。
今天是基于opencv模塊來(lái)調(diào)用筆記本的內(nèi)置攝像頭,然后從視頻流中獲取到人臉的圖像數(shù)據(jù)用于之后的人臉識(shí)別項(xiàng)目,也就是為了構(gòu)建可用的數(shù)據(jù)集。整個(gè)實(shí)現(xiàn)過(guò)程并不復(fù)雜,具體如下:
#!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能: Python opencv調(diào)用攝像頭獲取個(gè)人圖片 使用方法: 啟動(dòng)攝像頭后需要借助鍵盤(pán)輸入操作來(lái)完成圖片的獲取工作 c(change): 生成存儲(chǔ)目錄 p(photo): 執(zhí)行截圖 q(quit): 退出拍攝 OpenCV簡(jiǎn)介 1、videoCapture()方法打開(kāi)攝像 攝像頭變量 cv2.VideoCapture(n) n為整數(shù)內(nèi)置攝像頭為0,若有其他攝像頭則依次為1,2,3,... cap=cv2.VideoCapture(0) 打開(kāi)內(nèi)置攝像頭 2、cap.isOpened()方法判斷攝像頭是否處于打開(kāi),返回結(jié)果為:True、False 3、ret,img=cap.read() 讀取圖像 布爾變量,圖像變量=cap.read() 4、cap.release() 釋放攝像頭 5、action=cv2.waitKey(n) 獲取用戶輸入,同時(shí)可獲取按鍵的ASCLL碼值 ''' import os import cv2 import sys reload(sys) sys.setdefaultencoding('utf-8') def cameraAutoForPictures(saveDir='data/'): ''' 調(diào)用電腦攝像頭來(lái)自動(dòng)獲取圖片 ''' if not os.path.exists(saveDir): os.makedirs(saveDir) count=1 #圖片計(jì)數(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) #前置攝像頭獲取的畫(huà)面是非鏡面的,即左手會(huì)出現(xiàn)在畫(huà)面的右側(cè),此處使用flip進(jìn)行水平鏡像處理 cv2.imshow("capture", frame) action=cv2.waitKey(1) & 0xFF if action==ord('c'): saveDir=raw_input(u"請(qǐng)輸入新的存儲(chǔ)目錄:") 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/')
上述代碼的運(yùn)行環(huán)境需要是Python2,因?yàn)閜ython2中才有reload方法,去掉那些語(yǔ)句就可以在Python3中執(zhí)行了,我們?cè)赑ython2的環(huán)境中執(zhí)行結(jié)果截圖如下:
我的保存路徑是data,按q退出后,進(jìn)入data文件夾下就可以看到自己的“靚照”了哈,好了數(shù)據(jù)集準(zhǔn)備到此結(jié)束,接下來(lái)準(zhǔn)備實(shí)戰(zhàn)人臉識(shí)別。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
用python給自己做一款小說(shuō)閱讀器過(guò)程詳解
這篇文章主要介紹了用python給自己做一款小說(shuō)閱讀器過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Python數(shù)據(jù)類型之Set集合實(shí)例詳解
這篇文章主要介紹了Python數(shù)據(jù)類型之Set集合,結(jié)合實(shí)例形式詳細(xì)分析了Python數(shù)據(jù)類型中集合的概念、原理、創(chuàng)建、遍歷、交集、并集等相關(guān)操作技巧,需要的朋友可以參考下2019-05-05python beautiful soup庫(kù)入門(mén)安裝教程
Beautiful Soup是python的一個(gè)庫(kù),最主要的功能是從網(wǎng)頁(yè)抓取數(shù)據(jù)。今天通過(guò)本文給大家分享python beautiful soup庫(kù)入門(mén)教程,需要的朋友參考下吧2021-08-08python利用pd.cut()和pd.qcut()對(duì)數(shù)據(jù)進(jìn)行分箱操作
本文主要介紹了python利用pd.cut()和pd.qcut()對(duì)數(shù)據(jù)進(jìn)行分箱操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06python plt可視化——打印特殊符號(hào)和制作圖例代碼
這篇文章主要介紹了python plt可視化——打印特殊符號(hào)和制作圖例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python中POST調(diào)用Restful接口示例
這篇文章主要介紹了Python之POST調(diào)用Restful接口示例,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02Python多進(jìn)程并發(fā)與多線程并發(fā)編程實(shí)例總結(jié)
這篇文章主要介紹了Python多進(jìn)程并發(fā)與多線程并發(fā)編程,結(jié)合實(shí)例形式總結(jié)分析了Python編程中的多進(jìn)程并發(fā)與多線程并發(fā)相關(guān)概念、使用方法與操作注意事項(xiàng),需要的朋友可以參考下2018-02-02TensorFlow2.X使用圖片制作簡(jiǎn)單的數(shù)據(jù)集訓(xùn)練模型
這篇文章主要介紹了TensorFlow2.X使用圖片制作簡(jiǎn)單的數(shù)據(jù)集訓(xùn)練模型,本文通過(guò)截圖實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Python實(shí)現(xiàn)多線程HTTP下載器示例
本篇文章主要介紹了Python實(shí)現(xiàn)多線程HTTP下載器示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02