OpenCV haarcascades loading is NOT working at all

127 views Asked by At

I'm using visual studio 2019 with OpenCV 4.4.0 every thing was great but when i want to start face detection the cascade classifiar doesn't load the haarcascade

you also have to know that i installed openCV in the c partition and this is a simple code


#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <opencv2\opencv.hpp>
#include <opencv2/highgui/highgui.hpp>


#include <Windows.h>
#include <vector>
#include <stdio.h>

using namespace std;
using namespace cv;

int main()
{
    
    VideoCapture cam(0);
    Mat img;
    CascadeClassifier detector;
    vector<Rect> faces;
    Point p[2];
    bool cap = false;

    if (!detector.load("c:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml"))
    {
        cout << "Image Detector Doesn't work\n";
        return EXIT_FAILURE;
    }

    if (!cam.isOpened())
    {
        cout << "Can't Open Camera\n";
        return EXIT_FAILURE;
    }

    while (!cap)
    {
        cam.read(img);
        imshow("Cam", img);
        waitKey(0);
        if (GetAsyncKeyState(VK_ESCAPE))
            cap = true;
    }

    destroyWindow("Cam");

    cout << "Detecting Face...\n";
    detector.detectMultiScale(img, faces);
    
    for (int i = 0; i < faces.size(); i++)
    {
        p[0] = Point(faces[i].x,faces[i].y);
        p[1] = Point(faces[i].x + faces[i].height,faces[i].y + faces[i].width);
        rectangle(img,p[0],p[1],Scalar(0,0,255),3);
    }

    imwrite("Result.jpg",img);

    return EXIT_SUCCESS;
}

this code doesn't load the haarcascade and it returns "can't load" in the cmd

so i really need help with and thanks for all

1

There are 1 answers

1
MikeCAT On

\ is used as escape sequence in C++ string literals.

Therefore, you should use \\ to put a character \ in them.

if (!dec.load("c:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml"))