基于python OpenCV实现动态人脸检测
本文实例为大家分享了python动态人脸检测的具体代码,供大家参考,具体内容如下
直接上代码:按Q退出
importcv2 importnumpyasnp cv2.namedWindow("test") cap=cv2.VideoCapture(0)#加载摄像头录制 #cap=cv2.VideoCapture("test.mp4")#打开视频文件 success,frame=cap.read() #classifier=cv2.CascadeClassifier("/Users/yuki/anaconda/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml") #确保此xml文件与该py文件在一个文件夹下,否则将这里改为绝对路径 #haarcascade_frontalface_default.xml classifier=cv2.CascadeClassifier("/Users/yuki/anaconda/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml") #确保此xml文件与该py文件在一个文件夹下,否则将这里改为绝对路径 whilesuccess: success,frame=cap.read() size=frame.shape[:2] image=np.zeros(size,dtype=np.float16) image=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) cv2.equalizeHist(image,image) divisor=8 h,w=size minSize=(w//divisor,h//divisor) faceRects=classifier.detectMultiScale(image,1.2,2,cv2.CASCADE_SCALE_IMAGE,minSize) iflen(faceRects)>0: forfaceRectinfaceRects: x,y,w,h=faceRect cv2.rectangle(frame,(x,y),(x+h,y+w),(0,255,0),2) #锁定眼和嘴巴 #cv2.circle(frame,(x+w//4,y+h//4+30),min(w//8,h//8),(255,0,0))#左眼 #cv2.circle(frame,(x+3*w//4,y+h//4+30),min(w//8,h//8),(255,0,0))#右眼 #cv2.rectangle(frame,(x+3*w//8,y+3*h//4),(x+5*w//8,y+7*h//8),(255,0,0))#嘴巴 cv2.imshow("test",frame) key=cv2.waitKey(10) c=chr(key&255) ifcin['q','Q',chr(27)]: break cv2.destroyWindow("test")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。