python实现图片,视频人脸识别(opencv版)
图片人脸识别
importcv2
filepath="img/xingye-1.png"
img=cv2.imread(filepath)#读取图片
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#转换灰色
#OpenCV人脸识别分类器
classifier=cv2.CascadeClassifier(
"C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml"
)
color=(0,255,0)#定义绘制颜色
#调用识别人脸
faceRects=classifier.detectMultiScale(
gray,scaleFactor=1.2,minNeighbors=3,minSize=(32,32))
iflen(faceRects):#大于0则检测到人脸
forfaceRectinfaceRects:#单独框出每一张人脸
x,y,w,h=faceRect
#框出人脸
cv2.rectangle(img,(x,y),(x+h,y+w),color,2)
#左眼
cv2.circle(img,(x+w//4,y+h//4+30),min(w//8,h//8),
color)
#右眼
cv2.circle(img,(x+3*w//4,y+h//4+30),min(w//8,h//8),
color)
#嘴巴
cv2.rectangle(img,(x+3*w//8,y+3*h//4),
(x+5*w//8,y+7*h//8),color)
cv2.imshow("image",img)#显示图像
c=cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()
视频人脸识别
#-*-coding:utf-8-*-
#OpenCV版本的视频检测
importcv2
#图片识别方法封装
defdiscern(img):
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cap=cv2.CascadeClassifier(
"C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml"
)
faceRects=cap.detectMultiScale(
gray,scaleFactor=1.2,minNeighbors=3,minSize=(50,50))
iflen(faceRects):
forfaceRectinfaceRects:
x,y,w,h=faceRect
cv2.rectangle(img,(x,y),(x+h,y+w),(0,255,0),2)#框出人脸
cv2.imshow("Image",img)
#获取摄像头0表示第一个摄像头
cap=cv2.VideoCapture(0)
while(1):#逐帧显示
ret,img=cap.read()
#cv2.imshow("Image",img)
discern(img)
ifcv2.waitKey(1)&0xFF==ord('q'):
break
cap.release()#释放摄像头
cv2.destroyAllWindows()#释放窗口资源
以上就是python实现图像,视频人脸识别(opencv版)的详细内容,更多关于python人脸识别的资料请关注毛票票其它相关文章!