Bonjour, j'essai de faire une application console avec qt et openCV mais lorsque j'introduit une fonction de OpenCV dans mon code, je n'est plus rien qui s'affiche dans la console. voici mon code principal.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}