2013-02-06 164 views
1

我在Debian上使用opencv 2.3.1。以下代碼無法加載給定的jpeg 2000文件。opencv無法加載jp2圖像文件

#include "opencv/cv.h" 
#include "opencv/highgui.h" 
#include <vector> 
#include <iostream> 

int main() 
{ 
    IplImage* img_temp = cvLoadImage("delmeg.jp2", CV_LOAD_IMAGE_ANYCOLOR); 
    //IplImage* img_temp = cvLoadImage("delmec.jp2"); 
    if(img_temp == NULL) 
    { 
     std::cout << "Can't load the image.." << std::endl; 
     return -1; 
    } 
    cv::Mat img(img_temp); 

    if (img_temp != NULL){ 
     cvReleaseImage(&img_temp); 
    } 
    return 0; 
} 

我用下面的命令來編譯:

g++ -Wall -g -I /usr/include/ testopencv2x.cpp -o testopencv2x -lopencv_core -lopencv_imgproc -lopencv_highgui 

任何人都知道我在這裏失蹤?

謝謝。

回答

1

我不知道2.3.1,但這裏是什麼documentation says about 2.4.3

注意:OpenCV中提供了圖像格式支持Windows位圖(BMP),便攜式圖像格式(PBM, pgm,ppm)和Sun raster(sr,ras)。 在插件的幫助下(如果您自己創建庫,您需要指定使用它們,但在我們默認發貨的包中),您還可以加載圖像格式,如JPEG(jpeg,jpg,jpe),JPEG 2000(jp2 - 以CMake as Jasper代號),TIFF文件(tiff,tif)和便攜式網絡圖形(png)。此外,OpenEXR也是一種可能性。

因此,請確保您構建OpenCV以支持此格式。

+0

是的,我已經通過documentatoin,所以也許我不正確地理解它。在這種情況下,我也嘗試通過在cmake中指定jasper(jpeg2000庫)來編譯OpenCV(在Windows 7中)。在這種情況下,我也無法讀取jp2文件(與我的源代碼相同上市)。 – user193272

+0

此外,我在我的Debian機器上安裝了jasper libs:libjasper-dev和libjasper1:i386 – user193272

+0

確保CMake可以看到它們。在發佈'make'之前,你應該能夠看到cmake是否能夠在你的系統上找到支持這種類型的庫。 – karlphillip