Por que esse código de Python não compila?

18/05/2021

0

Captura.py
import cv2
import numpy as np
classificador = cv2.CascadeClassifier("haarcascade-frontalface-default.xml")
classificadorOlho = cv2.CascadeClassifier("haarcascade-eye.xml")
camera = cv2.VideoCapture(1)
amostra = 1
numeroAmostras = 25
id = input('Digite seu identificador: ')
largura, altura = 220, 220
print("Capturando as faces...")
while (True):
conectado, imagem = camera.read()
imagemCinza = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
facesDetectadas = classificador.detectMultiScale(imagemCinza,
scaleFactor=1.5,
minSize=(150,150))
for (x, y, l, a) in facesDetectadas:
cv2.rectangle(imagem, (x, y), (x + l, y + a), (0, 0, 255), 2)
regiao = imagem[y:y + a, x:x + l]
regiaoCinzaOlho = cv2.cvtColor(regiao, cv2.COLOR_BGR2GRAY)
olhosDetectados = classificadorOlho.detectMultiScale(regiaoCinzaOlho)
for(ox, oy, ol, oa) in olhosDetectados:
cv2.rectangle(regiao, (ox, oy), (ox + ol, oy + oa), (0, 255, 0), 2)
if cv2.waitKey(1) & 0XFF == ord('q'):
if np.average(imagemCinza) > 110:
imagemFace = cv2.resize(imagemCinza[y:y + a, x:x + l], (largura, altura))
cv2.imwrite("dataset/Pichau." + str(id) + "." + str(amostra) + ".jpg", imagemFace)
print("[foto " + str(amostra) + " capturada com sucesso]")
amostra += 1
cv2.imshow("Face", imagem)
cv2.waitKey(1)
if(amostra >= numeroAmostras + 1):
print("Faces capturadas com sucesso")

camera.realease()
cv2.destroyAllWindows()
treinamento.py
import cv2
import numpy as np
import os #usar recusos do SO
#cria o algoritmo de reconhecimento
eigenface = cv2.face.EigenFaceRecognizer_create()
fisherface = cv2.face.FisherFaceRecognizer_create()
lbph = cv2.face.LBPHFaceRecognizer_create()
def getImagemComId():
caminhos = [os.path.join('dataset', f) for f in os.listdir('dataset')]
faces = [] #lista
ids = []
#possui todos os caminhos das imagens
for caminhoImagem in caminhos:
imagemFace = cv2.cvtColor(cv2.imread(caminhoImagem),
cv2.COLOR_BGR2GRAY) #abrindo a imagem e convertendo ela em escla de cinza
id = int(os.path.split(caminhoImagem)[-1].split('.')[1]!='jpg')
print(id)
ids.append(id)
faces.append(imagemFace)
cv2.imshow("Face", imagemFace)
cv2.waitKey(10)

print("Treinando...")
eigenface.train(faces, ids)
eigenface.write('classificadorEigen.yml')
lbph.train(faces, ids)
lbph.write('classificadorLPBH.yml')
print("Treinamento realizado")
reconhecedor-eigenface.py
import cv2
class Reconhecedor:
detectorFace = cv2.CascadeClassifier("haarcascade-frontalface- default.xml")
reconhecedor = cv2.face.EigenFaceRecognizer_create() #reconhece a face no vídeo
reconhecedor.read("classificadorEigen.yml") #com base no aprendizado, classifica os rostos
largura, altura = 220, 220
font = cv2.FONT_HERSHEY_COMPLEX_SMALL
camera = cv2.VideoCapture(1) #conecta com a câmera
while (True):
conectado, imagem = camera.read() #capturando a imagem
imagemCinza = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
facesDetectadas = detectorFace.detectMultiScale(imagemCinza,
scaleFactor=1.5, minSize=(50, 50))
#Localiza as imagens que aparecem na webcam e as reconhece.
for (x, y, l, a) in facesDetectadas:
imagemFace = cv2.resize(imagemCinza[y:y + a, x:x + l], (largura,altura))
#reduzindo a imagem para 200X200
cv2.rectangle(imagem, (x, y), (x + l, y + a), (0, 0, 255), 2)
id, confianca = reconhecedor.predict(imagemFace)
cv2.putText(imagem, str(id), (x,y + (a+30)), font, 2, (0,0,255))
#visualizando a imagem capturada15
cv2.imshow("Face", imagem)
cv2.waitKey(1)
camera.release()
cv2.destroyAllWindows()
a = Reconhecedor()

import traceback
import sys

try:
raise TypeError("Oups!")
except Exception:
try:
exc_info = sys.exc_info()

# do you usefull stuff here
# (potentially raising an exception)
try:
raise TypeError("Again !?!")
except:
pass
# end of useful stuff


finally:
# Display the *original* exception
traceback.print_exception(*exc_info)
del exc_info
Lucca

Lucca

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar