/****************************************** * détection de visages avec openCV ******************************************/ function onOpenCvReady() { console.info('OpenCV.js est chargé !'); document.getElementById('status').remove() } function detection_de_visages() { src = cv.imread(ima_fond); gray = new cv.Mat(); cv.cvtColor(src, gray, cv.COLOR_RGBA2GRAY, 0); chargement_haarcascade(); } function chargement_haarcascade() { let reader_haar = new FileReader(); reader_haar.onload = function (ev) { function str2ab(text) { return new TextEncoder().encode(text); } faceCascadeFile = fichier_xml.name; let data = str2ab(reader_haar.result) cv.FS_createDataFile('/', faceCascadeFile, data, true, false, false); detect_faces(); }; reader_haar.readAsText(fichier_xml); } function detect_faces() { let faces = new cv.RectVector(); let faceCascade = new cv.CascadeClassifier(); // load pre-trained classifiers faceCascade.load(faceCascadeFile); // detect faces let msize = new cv.Size(0, 0); faceCascade.detectMultiScale(gray, faces, 1.1, 3, 0, msize, msize); console.log("Il y a " + faces.size() + " visage(s)") for (let i = 0; i < faces.size(); ++i) { ajouter_personne_xml("nom_" + parseInt(i) + " ", faces.get(i).x, faces.get(i).y, faces.get(i).width, faces.get(i).height) } src.delete(); gray.delete(); faceCascade.delete(); faces.delete(); lecture_xml(); ; }