Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Resolução do Exercicio

*Apenas uma sugestão da realização do exercício, com o acréscimo de baixar as imagens. *

imagem_1 = cv2.imread('/content/1364-img0202.png')
imagem_2 = cv2.imread('/content/1364-img0203.png')
imagem_3 = cv2.imread('/content/1364-img0204.png')

# extraindo os rostos
def extrator_faces(imagem):
  imagem = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB) # convertendo as cores
  imagem_gray = cv2.cvtColor(imagem, cv2.COLOR_RGB2GRAY)
  classificador = cv2.CascadeClassifier('/content/haarcascade_frontalface_default.xml') # usando classificador treinado
  faces = classificador.detectMultiScale(imagem_gray, 1.3, 5)

  for (x,y,w,h) in faces: # para rodar nos array dentro da face, no caso a posição das imagens
    imagem_roi = imagem[y:y+h, x:x+w] # selecionando o rosto, intervalo em que está localizado
    imagem_roi = cv2.cvtColor(imagem_roi, cv2.COLOR_RGB2BGR) # para usar imwrite preciso deixar ela precisa BGR

    cv2.imwrite('face' + str(faces[0][0]) + '.png', imagem_roi) # baixando as faces

extrator_faces(imagem_1)
extrator_faces(imagem_2)
extrator_faces(imagem_3)

# função para marcar os rosto
def extrator_para_faces_graf(imagem):
  imagem = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB) 
  imagem_gray = cv2.cvtColor(imagem, cv2.COLOR_RGB2GRAY)
  classificador = cv2.CascadeClassifier('/content/haarcascade_frontalface_default.xml') 
  faces = classificador.detectMultiScale(imagem_gray, 1.3, 5)

  for (x,y,w,h) in faces: 
    imagem_roi = imagem[y:y+h, x:x+w] 
    imagem_roi = cv2.cvtColor(imagem_roi, cv2.COLOR_RGB2BGR) 
    imagem_roi = cv2.cvtColor(imagem_roi, cv2.COLOR_BGR2RGB)

  return imagem_roi

plt.figure(figsize=(20,10))

plt.subplot(131)
plt.title("Pessoa 1")
plt.imshow(extrator_para_faces_graf(imagem_1))

plt.subplot(132)
plt.title("Pessoa 2")
plt.imshow(extrator_para_faces_graf(imagem_2))

plt.subplot(133)
plt.title("Pessoa 3")
plt.imshow(extrator_para_faces_graf(imagem_3))

plt.show()
1 resposta
solução!

Obrigado pela contribuição, Yago!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software