Слияние кода завершено, страница обновится автоматически
# face detector 3.1
# Haar-based face detector
import numpy as np
from matplotlib import pyplot as plt
import cv2
# visualize functions
def show_img_matplotlib(color_img, title, pos):
img_rgb = color_img[:, :, ::-1]
ax = plt.subplot(2, 2, pos)
plt.imshow(img_rgb)
plt.title(title, fontsize=8)
plt.axis('off')
# draw the face detection box function
def show_detection(image, faces):
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 5)
return image
# load image
img = cv2.imread("picture/005.jpg")
# bgr_img -> gray_img
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# load classifier
cas_alt2 = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")
cas_default = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
# detect face
faces_alt2 = cas_alt2.detectMultiScale(gray)
faces_default = cas_default.detectMultiScale(gray)
print(faces_alt2)
# print(faces_default)
# one line of code to implement Haar-based face detector
retval, faces_haar_alt2 = cv2.face.getFacesHAAR(img, "haarcascade_frontalface_alt2.xml")
faces_haar_alt2 = np.squeeze(faces_haar_alt2)
retval, faces_haar_default = cv2.face.getFacesHAAR(img, "haarcascade_frontalface_default.xml")
faces_haar_default=np.squeeze(faces_haar_default)
# draw the face detection box
img_faces_alt2 = show_detection(img.copy(), faces_alt2)
img_faces_default = show_detection(img.copy(), faces_default)
img_faces_haar_alt2=show_detection(img.copy(),faces_haar_alt2)
img_faces_haar_default=show_detection(img.copy(),faces_haar_default)
# visualization
show_img_matplotlib(img_faces_alt2, "detectMultiScale(frontalface_alt2):" + str(len(faces_alt2)), 1)
show_img_matplotlib(img_faces_default, "detectMultiScale(frontalface_default):" + str(len(faces_default)), 2)
show_img_matplotlib(img_faces_haar_alt2,"getFacesHAAR(frontalface_alt2):"+str(len(faces_haar_alt2)),3)
show_img_matplotlib(img_faces_haar_default,"getFaceHAAR(frontalface_default):"+str(len(faces_haar_default)),4)
plt.show()
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )