1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#include "MetaDataGenerator.hpp"
#include <QDir>
#include <QTextStream>
#include <cv.h>
#include <highgui.h>
MetaDataGenerator::MetaDataGenerator( int argc, char *argv[] ) :
QCoreApplication( argc, argv ),
m_cascade(0)
{
m_imageTypeFilter << "*.bmp" << "*.jpg" << "*.png" << "*.gif";
m_faceDetectionConfigFileName = "haarcascade_frontalface_alt.xml";
m_imgSrcDirName = "images";
m_metaDonneDirName = "imagesMetaData";
}
#include <iostream>
MetaDataGenerator::~MetaDataGenerator(){
//cvReleaseHaarClassifierCascade( &m_cascade );
}
int MetaDataGenerator::exec(){
QTextStream console(stderr);
QDir imgDir(m_imgSrcDirName);
QDir metaDataDir(m_metaDonneDirName);
QImage currentImg;
int currentImgFaceCount = 0;
//int currentImgColorCount = 0;
imgDir.setNameFilters( m_imageTypeFilter );
metaDataDir.setNameFilters( QStringList("*.xml") );
//------------------------------------
// charge le fichier de cascade
//------------------------------------
//cvLoad( "", 0, 0, 0 );
if( !m_cascade ){
console << "Le fichier " << m_faceDetectionConfigFileName << " est manquant !";
QCoreApplication::exit( -1 );
}
if( !imgDir.exists() ){
console << "Le repertoire " << imgDir.path() << " n'existe pas !";
console.flush();
QCoreApplication::exit( -1 );
}
if( imgDir.count() == 0 ){
console << "Le repertoire " << imgDir.path() << " ne contient pas d'image !";
console.flush();
QCoreApplication::exit( -1 );
}
if( !metaDataDir.exists() ){
console << "Le repertoire " << imgDir.path() << " n'existe pas !";
console.flush();
QCoreApplication::exit( -1 );
}
if( metaDataDir.count() == 0 ){
console << "Le repertoire " << metaDataDir.path() << " ne contient pas de fichier de métadonées !";
console.flush();
QCoreApplication::exit( -1 );
}
// Pour chaque Image
foreach( QString imageFileName, imgDir.entryList() ){
console << "Traitement de l'image " << imageFileName << "....\n";
console.flush();
currentImg.load( imgDir.path() + "\\" + imageFileName );
currentImgFaceCount = detectFaceCount( currentImg );
console << "Nombre de face détecté : " << currentImgFaceCount << "\n";
console << "Nombre de couleur : " << currentImg.colorCount() << "\n";
console.flush();
}
return QCoreApplication::exec();
}
int MetaDataGenerator::detectFaceCount( const QImage& img ){
return 0;
} |
Partager