汇总:
import cv2
import os.path
cascade = cv2.CascadeClassifier('./dir/lbpcascade_animeface.xml') # 引入xml
filename = 'dldongmanrenwu.png'
image = cv2.imread(filename, cv2.IMREAD_COLOR) # 读入一幅彩色图片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 色彩空间转换
gray = cv2.equalizeHist(gray) # 图像直方图均衡化
faces = cascade.detectMultiScale(gray,
# detector options
scaleFactor=1.1,
minNeighbors=5,
minSize=(25, 25))
i = 0
print(faces)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
face = image[y: y + h, x:x + w, :]
face = cv2.resize(face, (96, 96))
save_filename = '%s_%d.png' % (os.path.basename(filename).split('.')[0], i)
cv2.imwrite("faces/" + save_filename, face)
i = i + 1
cv2.imshow("AnimeFaceDetect", image)
cv2.waitKey(0)
cv2.imwrite("out2.png", image)
类似是人脸和眼睛的定位:
import cv2
face_cascade = cv2.CascadeClassifier(r'D:\ProgramData\Anaconda3\envs\duellinks\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(r'D:\ProgramData\Anaconda3\envs\duellinks\Lib\site-packages\cv2\data\haarcascade_eye.xml')
#img = cv2.imread(r'C:\Users\\nsquair\PycharmProjects\YugiOhDuelLinks_Bot\\backgroud_1.png')
img = cv2.imread('danren.jpg')
#gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
print(faces)
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
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)
cv2.waitKey(0)
cv2.destroyAllWindows()