2015-12-28 18 views
9

Ho configurato OpenCV 3.1.0 in Eclipse Mars. Queste sono la mia configurazione,OpenCV: riferimento non definito a imread()

G ++ include: D:/opencv/build/install/include; GCC include: D:/OpenCV/build/install/include

librerie Linker: libopencv_core310, libopencv_highgui310

Linker librerie percorso: D:/OpenCV/build/lib (file in questa directory sono come libopencv_core310.dll.a)

sto ottenendo un errore come questo,

imageRead.cpp:15: undefined reference to `cv::imread(cv::String const&, int)' 

Questo è il mio file imageRead.cpp,

#include <iostream> 
#include "opencv2/core/core.hpp" 
#include "opencv2/highgui/highgui.hpp" 

using namespace std; 
using namespace cv; 

int main(int argc, const char** argv) { 
    Mat img = imread("D:/sample.jpg", CV_LOAD_IMAGE_UNCHANGED); 
    if (img.empty()) { 
     cout << "Error: Image cannot be loaded." << endl; 
     system("pause"); 
     return -1; 
    } 
    namedWindow("Image Window", CV_WINDOW_AUTOSIZE); 
    imshow("Image Window", img); 
    if (waitKey() == 27) { 
     return -1; 
    } 
    destroyWindow("Image Window"); 
    return 0; 
} 

Qualcuno può aiutare con questo errore?

+1

-lopencv_imcodecs – berak

+0

Dice "Errore nell'avvio del processo: impossibile eseguire il programma" – Shinchan

+1

non correlato all'originale domanda. – berak

risposta

20

Dal momento che OpenCV3, la funzione imread si trova nel modulo imgcodecs. Imread dovrebbe funzionare una volta aggiunta la libreria opencv_imgcodecs al progetto (nota: imgcodecs, non imcodecs).

5

vi consiglio di collegare le seguenti librerie:

opencv_core 
opencv_highgui 
opencv_imgproc 
opencv_imgcodecs 

E nel file cpp, è possibile includere in questo modo

#include <iostream> 
    #include <opencv2/core/core.hpp> 
    #include <opencv2/highgui/highgui.hpp> 
    #include <opencv2/imgproc/imgproc.hpp> 

    using namespace std; 
    using namespace cv; 

O

#include <iostream> 
    #include <opencv2/opencv.hpp> 

    using namespace std; 
    using namespace cv;