该图像识别需要安装opencv,opencv的安装方法有两种,可通过网上提示的进行安装,本人是由pycharm里面直接安装的。 也可以直接根据python的版本通过cmd命令进行安装其命令为pip install opencv;
在这里如若直接拷贝本人的代码进行测试需要考虑到图片的路径和联级的路径,鄙人建议使用绝对路径。
import cv2
#基于图片的人脸识别
filename = 'F:/test/face1/yao7.png'
def detect(filename):
#联级
face_cascade = cv2.CascadeClassifier('F:/test/venv/Lib/site-packages/cv2/data/haarcascade_frontalface_alt2.xml')
#取像
img = cv2.imread(filename)
#转灰度
gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.1,5)
#人脸画框
for(x,y,w,h) in faces :
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
#窗口名
cv2.namedWindow("aiyst1")
#显示
cv2.imshow('aiyst',img)
#保存
cv2.imwrite("F:/test/face1/" + "yao" + ".jpg",img)
#cv2.imwrite('F:/test/face1',img)
cv2.waitKey(0)
#基于视频(摄像头取像)的图像识别
def detect2():
# 联级(脸和眼睛)
face1_cascade = cv2.CascadeClassifier('F:/test/venv/Lib/site-packages/cv2/data/haarcascade_frontalface_alt2.xml')
eye_cascade = cv2.CascadeClassifier('F:/test/venv/Lib/site-packages/cv2/data/haarcascade_eye.xml')
#打开摄像头
camera = cv2.VideoCapture(0)
while(True):
#读取摄像头图像
ret,frame = camera.read()
#转灰度图
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face1_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
img = cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
roi_gray = gray[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(gray, 1.3, 5, 0, (40,40))
for(ex,ey,ew,eh) in eyes :
cv2.rectangle(img, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
#显示图像
cv2.imshow("camera",frame)
#按q键关闭显示图像
if cv2.waitKey(1) & 0xff == ord("q"):
break
#关闭摄像头
camera.release()
cv2.destroyAllWindows()
if __name__ =="__main__":
#调用函数
detect2()