这是我用来将 *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);