opencv无法加载jp2图像文件

时间:2013-02-06 16:19:40

标签: c++ opencv load jpeg2000

我在Debian上使用opencv 2.3.1。以下代码无法加载给定的jpeg 2000文件。

#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 个答案:

答案 0 :(得分:1)

我不知道2.3.1,但这里是documentation says about 2.4.3

  

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

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