-1
import cv2
import numpy as np
classificador = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
classificadorOlho = cv2.CascadeClassifier("haarcascade_eye.xml")
camera = cv2.VideoCapture(0)
amostra=1
numeroAmostra=20
id=input('Digite seu identificador: ')
largura,altura = 220 ,220
print("capture ...")
while (True):
conectado,imagem = camera.read()
imagemCinza = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
print(np.average(imagemCinza))
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)
olhosDetectado = classificador.detectMultiScale(regiaoCinzaOlho)
for(ox. oy, ol, oa) in olhosDetectado:
cv2.rectangle(regiao, (ox,oy), (ox + ol , oy + oa), (0,255,0),2)
if cv2.waitKey(1)& 0xFF == ord('q'):
if np.average(imagemCinza) > 100:
imagemFace = cv2.resize(imagemCinza[y:y+a,x:x +l], (largura,altura))
cv2.imwrite("fotos1/pessoa. " + str(id) + "." +str(amostra) + ".jpg", imagemFace)
print("[ foto " + str(amostra) + " capturada com sucesso ]" )
amostra +=1
cv2.imshow("Face",imagem)
cv2.waitKey(1)
if(amostra >= numeroAmostra +1 ):
break
print("faces detectada com sucesso")
camera.release()
cv2.destroyAllWindows()
I also put on the website Pastebin.com
Error returned
Erros:
Traceback (most recent call last):
in runfile execfile(filename, namespace)
in execfile exec(compile(f.read(), filename, 'exec'), namespace)
imagemCinza = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
error: OpenCV(3.4.1) D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp:11147:
error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
Colleague explain better what you want
– Edeson Bizerril
I am capturing (taking pictures) images using web cam for my database. These photos are face only.
– André Brito