OpenCV - 找不到指定扩展名的编码器

时间:2010-11-23 09:23:39

标签: c++ opencv

这是我用来将* IplImage转换为jpg的代码:

IplImage* fIplImageHeader;
fIplImageHeader = cvCreateImageHeader(cvSize(160, 120), 8, 3);
fIplImageHeader->imageData = (char*) memblock;

vector<int> p;
p.push_back(CV_IMWRITE_JPEG_QUALITY);
p.push_back(10);
vector<unsigned char> buf;
cv::imencode("JPEG", fIplImageHeader, buf, p);

cvReleaseImageHeader(&fIplImageHeader);

但是我收到了这个错误:

OpenCV Error: Unspecified error (could not find encoder for the specified extension) in imencode, file /build/buildd/opencv-2.1.0/src/highgui/loadsave.cpp, line 409

在抛出'cv :: Exception'的实例后终止调用   what():/build/buildd/opencv-2.1.0/src/highgui/loadsave.cpp:409:错误:( - 2)找不到函数imencode中指定扩展名的编码器

为什么?我安装了OpenCV 2.1。这很有效,显然jpg编码器必须存在:

cvSaveImage("/home/richard/im.jpg", fIplImageHeader);

1 个答案:

答案 0 :(得分:45)

确定。我已经弄清楚了。这有效:

cv::imencode(".jpg", fIplImageHeader, buf, p);

他们应该在文档中的某处提到它应该在扩展之前完全停止。