Python OpenCV利用筆記本攝像頭實(shí)現(xiàn)人臉檢測(cè)
本文實(shí)例為大家分享了Python OpenCV利用筆記本攝像頭實(shí)現(xiàn)人臉檢測(cè)的具體代碼,供大家參考,具體內(nèi)容如下
1.安裝opencv
首先參考其他文章安裝pip。
之后以管理員身份運(yùn)行命令提示符,輸入以下代碼安裝opencv
pip install --user opencv-python
可以使用以下代碼測(cè)試安裝是否成功
#導(dǎo)入opencv模塊 import cv2 #捕捉幀,筆記本攝像頭設(shè)置為0即可 capture = cv2.VideoCapture(0) #循環(huán)顯示幀 while(True): ret, frame = capture.read() #顯示窗口第一個(gè)參數(shù)是窗口名,第二個(gè)參數(shù)是內(nèi)容 cv2.imshow('frame', frame) if cv2.waitKey(1) == ord('q'):#按Q退出 break
2.實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別
在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一定要采用絕對(duì)路徑,否則容易出錯(cuò),具體的位置可以用搜索得到。
結(jié)果如下
Ubuntu下的opencv安裝方法與win10類(lèi)似,先安裝pip,再在終端中輸入下面代碼安裝即可,這樣安裝的是python2的版本
pip install --user opencv-python
若要安裝python3的版本,請(qǐng)先安裝pip3,然后在終端輸入以下代碼:
pip3 install --user opencv-python
另外如果是用虛擬機(jī)運(yùn)行的Ubuntu的話(huà),是直接驅(qū)動(dòng)筆記本的攝像頭的,如果用的是VirtualBox虛擬機(jī)則可以在官網(wǎng)下載擴(kuò)展包安裝即可。
Ubuntu下實(shí)現(xiàn)人臉識(shí)別的代碼與win10類(lèi)似,只是需要注意數(shù)據(jù)集的絕對(duì)路徑,可以根據(jù)以下代碼來(lái)查詢(xún):
sudo find / -iname "*haarcascade_frontalface_default.xml*"
兩個(gè)數(shù)據(jù)集是在同一個(gè)文件夾下的,最后我的代碼如下
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
最后運(yùn)行結(jié)果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 人臉檢測(cè)實(shí)戰(zhàn)終極之OpenCV+Python實(shí)現(xiàn)人臉對(duì)齊
- python基于Opencv實(shí)現(xiàn)人臉口罩檢測(cè)
- python opencv人臉檢測(cè)提取及保存方法
- python版opencv攝像頭人臉實(shí)時(shí)檢測(cè)方法
- Python3.6.0+opencv3.3.0人臉檢測(cè)示例
- Python+OpenCV人臉檢測(cè)原理及示例詳解
- python利用OpenCV2實(shí)現(xiàn)人臉檢測(cè)
- python結(jié)合opencv實(shí)現(xiàn)人臉檢測(cè)與跟蹤
- python中使用OpenCV進(jìn)行人臉檢測(cè)的例子
- 使用 Python 和 OpenCV 實(shí)現(xiàn)攝像頭人臉檢測(cè)并截圖功能
相關(guān)文章
Flask框架重定向,錯(cuò)誤顯示,Responses響應(yīng)及Sessions會(huì)話(huà)操作示例
這篇文章主要介紹了Flask框架重定向,錯(cuò)誤顯示,Responses響應(yīng)及Sessions會(huì)話(huà)操作,結(jié)合實(shí)例形式分析了flask框架中重定向,錯(cuò)誤顯示,Responses響應(yīng)及Sessions會(huì)話(huà)操作相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-08-08在dataframe兩列日期相減并且得到具體的月數(shù)實(shí)例
今天小編就為大家分享一篇在dataframe兩列日期相減并且得到具體的月數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07在python中利用KNN實(shí)現(xiàn)對(duì)iris進(jìn)行分類(lèi)的方法
今天小編就為大家分享一篇在python中利用KNN實(shí)現(xiàn)對(duì)iris進(jìn)行分類(lèi)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python使用PIL庫(kù)實(shí)現(xiàn)驗(yàn)證碼圖片的方法
這篇文章主要介紹了Python使用PIL庫(kù)實(shí)現(xiàn)驗(yàn)證碼圖片的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python基于PIL庫(kù)生成驗(yàn)證碼圖片的相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下2016-03-03python調(diào)用c++傳遞數(shù)組的實(shí)例
今天小編就為大家分享一篇python調(diào)用c++傳遞數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理的解釋?zhuān)行枰呐笥芽梢越梃b參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05PyG搭建GCN需要準(zhǔn)備的數(shù)據(jù)格式
這篇文章主要為大家介紹了PyG搭建GCN前需要準(zhǔn)備的PyG數(shù)據(jù)格式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05opencv深入淺出了解機(jī)器學(xué)習(xí)和深度學(xué)習(xí)
機(jī)器學(xué)習(xí)是人工智能的核心,專(zhuān)門(mén)研究如何讓計(jì)算機(jī)模擬和學(xué)習(xí)人類(lèi)的行為。?深度學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一個(gè)熱門(mén)研究方向,它主要研究樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,讓計(jì)算機(jī)能夠讓人一樣具有分析與學(xué)習(xí)能力2022-03-03