我在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
有人知道我在这里缺少什么吗?
感谢。
答案 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以支持此格式。