OpenCV的 - 无法指定分机

问题描述:

这里找到编码器是我的代码我使用的转换*的IplImage为JPG:OpenCV的 - 无法指定分机

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:error:(-2)找不到指定的编码器功能扩展imencode

这是为什么?我安装了OpenCV 2.1。这工作如此明显jpg编码器必须在那里:

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

您是否试过`“jpeg”`和`“jpg”`而不是`“JPEG”`? imencode(http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html)的文档没有明确列出支持的大写扩展名。 – misha 2010-11-23 09:34:19

+0

@misha我尝试过“JPG”,“JPEG”,“jpg”,“jpeg”。所有的错误都是一样的。 – 2010-11-23 09:37:39

好的。我已经明白了这一点。这个工作原理:

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

他们应该在文档的某个地方提到在扩展前应该有一个句号。