Bonjour,
J'ai commencé à utiliser Qt Creator hier et je suis amené à utiliser la bibliothèque OpenCV. Je suis sous Windows 7, j'utilise la version 5.7 de Qt et la 2.49 d'OpenCV.
J'ai tenté de mettre en place un programme simple afin de voir si je pouvais utiliser les fonction d'Opencv et je reçois les messages d'erreurs suivants :

C:\Users\jfrej\Documents\qtest\main.cpp:48: erreur : undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'

C:\Users\jfrej\Documents\qtest\main.cpp:49: erreur : undefined reference to `cv::namedWindow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'

C:\Users\jfrej\Documents\qtest\main.cpp:23: erreur : undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'

C:\Users\jfrej\Documents\qtest\main.cpp:23: erreur : undefined reference to `cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)'

C:\Users\jfrej\Documents\qtest\main.cpp:24: erreur : undefined reference to `cv::waitKey(int)'

C:\opencv\build\include\opencv2\core\mat.hpp:278: erreur : undefined reference to `cv::fastFree(void*)'

C:\opencv\build\include\opencv2\core\mat.hpp:298: erreur : undefined reference to `cv::Mat::copySize(cv::Mat const&)'

C:\opencv\build\include\opencv2\core\mat.hpp:367: erreur : undefined reference to `cv::Mat::deallocate()'

collect2.exe:-1: erreur : error: ld returned 1 exit status

Voici mon fichier .pro


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
 
QT += widgets
 
 
SOURCES += \
    main.cpp \
    MaFenetre.cpp
 
HEADERS += \
    MaFenetre.h
 
 
 
INCLUDEPATH += "C:\opencv\build\include"
 
 
LIBS += -L "C:\opencv\build\x86\vc10\lib" \
                -lopencv_calib3d249 \
                -lopencv_calib3d249d \
                -lopencv_contrib249 \
                -lopencv_contrib249d \
                -lopencv_core249 \
                -lopencv_core249d \
                -lopencv_features2d249 \
                -lopencv_features2d249d \
                -lopencv_flann249 \
                -lopencv_flann249d \
                -lopencv_gpu249 \
                -lopencv_gpu249d \
                -lopencv_highgui249 \
                -lopencv_highgui249d \
                -lopencv_imgproc249 \
                -lopencv_imgproc249d \
                -lopencv_legacy249 \
                -lopencv_legacy249d \
                -lopencv_ml249 \
                -lopencv_ml249d \
                -lopencv_nonfree249 \
                -lopencv_nonfree249d \
                -lopencv_objdetect249 \
                -lopencv_objdetect249d \
                -lopencv_ocl249 \
                -lopencv_ocl249d \
                -lopencv_photo249 \
                -lopencv_photo249d \
                -lopencv_stitching249 \
                -lopencv_stitching249d \
                -lopencv_superres249 \
                -lopencv_superres249d \
                -lopencv_ts249 \
                -lopencv_ts249d \
                -lopencv_video249 \
                -lopencv_video249d \
                -lopencv_videostab249 \
                -lopencv_videostab249d \

et mon main :


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
 
 
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
 
#include <QApplication>
#include <QtWidgets>
 
 
#include "MaFenetre.h"
 
 
using namespace cv;
using namespace std;
 
 
int main(int argc, char *argv[])
{
 
    Mat im;
    string chemin1 = "C:\\data\\vignettes-defauts1\\comet\\1\\BS-detect-CurvX-dyn3_Cluster_0_Grey.bmp";
    im = imread(chemin1, -1);
    namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display.
    imshow( "Display window", im);                   // Show our image inside it.
    waitKey(0);                                      // Wait for a keystroke in the window
    return 0;
 
 
}

Je n'ai pas indiqué le contenu de la classe MaFenetre puisque je ne l'utilise pas dans mon main.

J'ai déjà essayé de changer la syntaxe de INCLUDEPATH et de LIBS en changeant les \ en // ou en \\ ou en enlevant les guillemets et la version d'OpenCV que j'utilise fonctionne très bien sous Visual Studio 2010 (sur la même machine).

De plus est-il normal que je n'ai indiqué nulle part l'emplacement des .dll (ce que j'ai dû faire pour utiliser OpenCV sous Visual Studio)?

Merci de votre aide.