3

I am using opencv 2.3.1 on Debian. The following code fails to load a given jpeg 2000 file.

#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;
}

I used the following command to compile it:

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

Anybody know what I am missing here?

Thanks.

4

1 回答 1

2

我不知道 2.3.1,但这是文档中关于 2.4.3的内容:

注意:OpenCV 支持图像格式 Windows 位图 (bmp)、便携式图像格式 (pbm, pgm, ppm) 和 Sun raster (sr, ras)。借助插件(如果您自己构建库,则需要指定使用它们,但在我们默认提供的软件包中)您还可以加载图像格式,如 JPEG(jpeg、jpg、jpe)、JPEG 2000(jp2 -在 CMake 中代号为 Jasper)、TIFF 文件(tiff、tif)和可移植网络图形(png)。此外,OpenEXR 也是一种可能。

因此,请确保您构建 OpenCV 以支持这种格式。

于 2013-02-06T17:00:22.397 回答