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

Erro no CascadeClassifier

Eu segui a ideia do script em aula e ficou assim:

import cv2
import matplotlib.pyplot as plt


imagem = cv2.imread("px-people.jpg")
imagem = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB)

imagem_gray = cv2.cvtColor(imagem, cv2.COLOR_RGB2GRAY)

classificador = cv2.CascadeClassifier(
    "classificadores/haarcascade_frontalface_default.xml"
)

faces = classificador.detectMultiScale(imagem_gray, 1.3, 5)

imagem_anotada = imagem.copy()

for (x, y, w, h) in faces:
    cv2.rectangle(imagem_anotada, (x, y), (x + w, y + h), (255, 255, 0), 2)

plt.imshow(imagem_anotada)
plt.show()

Mas na hora que rodo, aparece o erro:

cv2.error: OpenCV(4.5.4-dev) /tmp/pip-req-build-v2fnlv3a/opencv/modules/core/src/persistence.cpp:682: error: (-5:Bad argument) Input file is invalid in function 'open'


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "training.py", line 11, in <module>
    "classificadores/haarcascade_frontalface_default.xml"
SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set

O que poderia ser?

Obrigado

1 resposta
solução!

Pelo erro, existem 2 possibilidades:

  1. O arquivo do modelo não está no caminho indicado
  2. O arquivo está no caminho indicado, mas pode estar corrompido ou mal formatado. Neste caso baixe novamente o arquivo "haarcascade_frontalface_default.xml" do repositório (GitHub)

Quando for baixar o arquivo, baixe com o formato XML no caso de baixar ele diretamente.