Python OpenCV利用筆記本攝像頭實現(xiàn)人臉檢測
本文實例為大家分享了Python OpenCV利用筆記本攝像頭實現(xiàn)人臉檢測的具體代碼,供大家參考,具體內(nèi)容如下
1.安裝opencv
首先參考其他文章安裝pip。
之后以管理員身份運行命令提示符,輸入以下代碼安裝opencv
pip install --user opencv-python
可以使用以下代碼測試安裝是否成功
#導(dǎo)入opencv模塊 import cv2 #捕捉幀,筆記本攝像頭設(shè)置為0即可 capture = cv2.VideoCapture(0) #循環(huán)顯示幀 while(True): ret, frame = capture.read() #顯示窗口第一個參數(shù)是窗口名,第二個參數(shù)是內(nèi)容 cv2.imshow('frame', frame) if cv2.waitKey(1) == ord('q'):#按Q退出 break
2.實現(xiàn)簡單的人臉識別
在win10及python3.6.6環(huán)境下代碼如下
import cv2 import numpy as np face_cascade = cv2.CascadeClassifier("C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml") eye_cascade = cv2.CascadeClassifier("C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_eye.xml") cap=cv2.VideoCapture(0) while True: ret,img=cap.read() gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray,1.1,5) if len(faces)>0: for faceRect in faces: x,y,w,h = faceRect cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h//2,x:x+w] roi_color = img[y:y+h//2,x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray,1.1,1,cv2.CASCADE_SCALE_IMAGE,(2,2)) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) cv2.imshow("img",img) if cv2.waitKey(1) & 0xFF == ord('q'): break
注意數(shù)據(jù)集haarcascade_frontalface_default.xml,haarcascade_eye.xml一定要采用絕對路徑,否則容易出錯,具體的位置可以用搜索得到。
結(jié)果如下
Ubuntu下的opencv安裝方法與win10類似,先安裝pip,再在終端中輸入下面代碼安裝即可,這樣安裝的是python2的版本
pip install --user opencv-python
若要安裝python3的版本,請先安裝pip3,然后在終端輸入以下代碼:
pip3 install --user opencv-python
另外如果是用虛擬機運行的Ubuntu的話,是直接驅(qū)動筆記本的攝像頭的,如果用的是VirtualBox虛擬機則可以在官網(wǎng)下載擴展包安裝即可。
Ubuntu下實現(xiàn)人臉識別的代碼與win10類似,只是需要注意數(shù)據(jù)集的絕對路徑,可以根據(jù)以下代碼來查詢:
sudo find / -iname "*haarcascade_frontalface_default.xml*"
兩個數(shù)據(jù)集是在同一個文件夾下的,最后我的代碼如下
import cv2 import numpy as np face_cascade = cv2.CascadeClassifier("/home/yukino/.local/lib/python2.7/site-packages/cv2/data/haarcascade_frontalface_default.xml") eye_cascade = cv2.CascadeClassifier("/home/yukino/.local/lib/python2.7/site-packages/cv2/data/haarcascade_eye.xml") cap=cv2.VideoCapture(0) while True: ret,img=cap.read() gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray,1.1,5) if len(faces)>0: for faceRect in faces: x,y,w,h = faceRect cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h//2,x:x+w] roi_color = img[y:y+h//2,x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray,1.1,1,cv2.CASCADE_SCALE_IMAGE,(2,2)) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) cv2.imshow("img",img) if cv2.waitKey(1) & 0xFF == ord('q'): break
最后運行結(jié)果如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Flask框架重定向,錯誤顯示,Responses響應(yīng)及Sessions會話操作示例
這篇文章主要介紹了Flask框架重定向,錯誤顯示,Responses響應(yīng)及Sessions會話操作,結(jié)合實例形式分析了flask框架中重定向,錯誤顯示,Responses響應(yīng)及Sessions會話操作相關(guān)使用技巧與操作注意事項,需要的朋友可以參考下2019-08-08在dataframe兩列日期相減并且得到具體的月數(shù)實例
今天小編就為大家分享一篇在dataframe兩列日期相減并且得到具體的月數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07在python中利用KNN實現(xiàn)對iris進行分類的方法
今天小編就為大家分享一篇在python中利用KNN實現(xiàn)對iris進行分類的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理的解釋,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05PyG搭建GCN需要準(zhǔn)備的數(shù)據(jù)格式
這篇文章主要為大家介紹了PyG搭建GCN前需要準(zhǔn)備的PyG數(shù)據(jù)格式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05opencv深入淺出了解機器學(xué)習(xí)和深度學(xué)習(xí)
機器學(xué)習(xí)是人工智能的核心,專門研究如何讓計算機模擬和學(xué)習(xí)人類的行為。?深度學(xué)習(xí)是機器學(xué)習(xí)中的一個熱門研究方向,它主要研究樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,讓計算機能夠讓人一樣具有分析與學(xué)習(xí)能力2022-03-03