Red de conocimiento informático - Computadora portátil - cascade.detectMultiScale(smallImg, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30));

cascade.detectMultiScale(smallImg, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30));

En OpenCV 4, "CV_HAAR_SCALE_IMAGE" fue reemplazado por "cv::CASCADE_SCALE_IMAGE", por lo que debe reemplazar "CV_HAAR_SCALE_IMAGE" en su código con "cv::CASCADE_SCALE_IMAGE". Además, al utilizar la clase `cv::CascadeClassifier` para la detección de rostros, debe asegurarse de que el clasificador en cascada esté cargado correctamente y que el espacio de color de la imagen de entrada sea una imagen en escala de grises.

El siguiente es un fragmento de código de muestra que muestra cómo usar la clase `cv::CascadeClassifier` para la detección de rostros en OpenCV 4:

`c

# incluir lt; opencv2/opencv.hppgt;

int main()

{

cv::CascadeClassifier face_cascade;

if ( !face_cascade.load("haarcascade_frontalface_default.xml")) {

std::cerr lt;lt; "Error al cargar la cascada de caras\n";

return -1;

}

cv::Mat frame = cv::imread("test.jpg");

if (frame.empty()) {

std::cerr lt;lt; "Error al cargar la imagen\n";

return -1;

}

cv:: Mat gris;

cv::cvtColor(marco, gris, cv::COLOR_BGR2GRAY);

std::vectorlt; cv::Rectgt; face_cascade.detectMultiScale(gray, faces, 1.1, 2, 0 | cv::CASCADE_SCALE_IMAGE, cv::Size(30, 30));

for (size_t i = 0; i lt; faces .size (); i) {

cv::rectangle(marco, caras[i], cv::Scalar(0, 0, 255), 2);

}

cv::imshow("Caras", marco);

cv:::imshow("Caras", marco);

cv::: :imshow ("Caras", marco);

for (size_t i = 0; i lt; faces: waitKey(0);

return 0;

}

``

En este ejemplo, primero cargamos el clasificador en cascada (`` haarcascade_frontalface_default.xml`) y luego leemos la imagen de prueba.

Luego, convierta la imagen de entrada a escala de grises y use la función `detectMultiScale` para detectar caras. Finalmente, se dibuja un cuadro rectangular alrededor de la cara detectada y se muestra la imagen resultante.