Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OpenCV 4.0.0 SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set

Hello I am trying to create a facial recognition program but I have a peculiar error: here is my code:

import cv2 as cv
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
face_cascade = cv.CascadeClassifier("lbpcascade_frontalface.xml")
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5);

and this error is the output

SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set

I have "lbpcascade_frontalface.xml" in the working directory so that shouldn't be an issue

if it helps when I enter

cv.__version__

I get

'4.0.0'
like image 710
Tyler Strouth Avatar asked Jan 20 '19 02:01

Tyler Strouth


2 Answers

New Answer OpenCV seems to now have a directory dedicated to cascades, they are placed in data and I am seeing something like this floating around in tutorials now haar_cascade_face = cv.CascadeClassifier('data/haarcascade/haarcascade_frontalface_default.xml') You may have to find where data is on your machine or the above my work. I have not touched this project since I finished it in early 2019. Bear in mind this only works for frontal face, if you want to use Haar's Cascade for eyes that is a separate file.

old answer Turns out I didn't need to download another file and use it because opencv comes with it this little bit of code worked

cv.CascadeClassifier(cv.data.haarcascades + "haarcascade_frontalface_default.xml")
like image 119
Tyler Strouth Avatar answered Nov 03 '22 07:11

Tyler Strouth


Well I was in this same problem, as @TylerStrouth mentioned this code snippet doesn't work :

cv.CascadeClassifier(cv.data.haarcascades + "haarcascade_frontalface_default.xml")

because there are no haarcascades files in data directory if you have just installed opencv in a standard format of pip install opencv-python or sudo apt-get install python3-opencv

You will get an error something similar to this stackoverflow question, therein is the mentioned solution that worked for me, that is if you're using python3 then you need also to install opencv-contrib-python before running the above code snippet.

pip install opencv-contrib-python

which has full package (contains both main modules and contrib/extra modules)

like image 43
Arnav Das Avatar answered Nov 03 '22 08:11

Arnav Das