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