回家第一天感覺好無聊,一天睡了十幾個小時,電視劇集也看完了,就玩玩python呼叫筆記本攝像頭並實現人臉檢測。
首先介紹一下如何呼叫筆記本的攝像頭,這裡我們使用opencv庫中的videocapture()函式建立攝像頭物件,其引數為0是表示呼叫第乙個攝像頭,一般就是筆記本的內建攝像頭。
import cv2
#定義攝像頭
cap = cv2.videocapture(0)
呼叫完成攝像頭後,我們要逐幀顯示,這裡我們就要用到while函式不斷顯示攝像頭獲取的每一幀影象,當檢測到退出『q』時,退出,釋放攝像頭,並銷毀所有視窗:
while(1)
ret,frame = cap.read()#讀取每一幀
cv2.imshow('攝像頭',frame)#顯示每一幀
if cv2.waitkey(1) & 0xff == ord(q):
break
cap.release()
cv2.destroyallwindows()
人臉檢測屬於目標檢測中的一部分,主要包括兩個方面:
①首先是對待檢測的目標進行特徵提取,並建立相應的檢測模型;
②然後用建立的模型去檢測輸入的影象,如果有待檢測目標,就框選出相應的區域。
下面我們使用opencv中訓練好的模型進行人臉檢測:
import cv2
cap = cv2.videocapture(0)
face = cv2.cascadeclassifier(r'c:\\users\\administrator\\anaconda3\\lib\\opencv-master\\opencv-master\\data\\haarcascades\\haarcascade_frontalface_default.xml')
eye = cv2.cascadeclassifier(r'c:\\users\\administrator\\anaconda3\\lib\\opencv-master\\opencv-master\\data\\`\\haarcascade_eye.xml')
smile = cv2.cascadeclassifier(r'c:\\users\\administrator\\anaconda3\\lib\\opencv-master\\opencv-master\\data\\haarcascades\\haarcascade_smile.xml')
while(1):
ret,frame = cap.read()
gray = cv2.cvtcolor(frame,cv2.color_rgb2gray)
faces = face.detectmultiscale(gray,1.1,3,0,(200,100))
for (x,y,w,h) in faces:
img = cv2.rectangle(frame,(x,y),(x+w,y+h),(255,255,0),2)
gray_roi = gray[y:y+h,x:x+h]
eyes = eye.detectmultiscale(gray_roi,1.02,3,0,(50,50))
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(img,(x+ex,y+ey),(x+ex+ew,y+ey+eh),(0,255,0),2)
smiles = smile.detectmultiscale(gray,1.1,3,0,(100,100))
for (sx,sy,sw,sh) in smiles:
cv2.rectangle(frame,(sx,sy),(sx+sw,sy+sh),(0,255,255),2)
cv2.imshow('攝像頭',frame)
if cv2.waitkey(1) & 0xff == ord('q'):
break
cap.release()
cv2.destroyallwindows()
今天沒洗頭,我就不上圖了,大家自行執行看下效果吧!!!滑稽臉~~~
python實現呼叫筆記本攝像頭
import cv2 cv2.cap dshow 我呼叫系統攝像頭需要的引數,網上cv2.videocapture 0 就可以,但我的不行 cap cv2.videocapture 0 cv2.cap dshow flag cap.isopened while flag 從攝像頭讀取 sucess,...
Ubuntu16 04使用膝上型電腦攝像頭操作方式
在vmware軟體安裝ubuntu16.04系統,並在ubuntu中啟動膝上型電腦的攝像頭的配置方 使用 win r 快捷鍵,開啟win10電腦的執行埠,然後輸入 services.msc,開啟服務設定 在服務頁面找到 vmusbarbservice 服務,並將其啟動。開啟vmware,編輯虛擬機器...
Python呼叫攝像頭
如下 import cv2 import numpy 建立攝像頭物件 cap cv2.videocapture videotest test1.mp4 cap cv2.videocapture 0 引數為本地攝像頭 cap cv2.videocapture 1 引數為usb攝像頭 while 1 r...