Capture images to create a database

Asked

Viewed 301 times

-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
  • 1

    Colleague explain better what you want

  • I am capturing (taking pictures) images using web cam for my database. These photos are face only.

1 answer

0

This type of error usually appears when you are trying to convert an image that is not colored (3 or 4 color channels) to gray. Before converting, you need to check the dimensionality of the image with imagem.shape[2]>2

Browser other questions tagged

You are not signed in. Login or sign up in order to post.