这是我用来将*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);
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
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
Run Code Online (Sandbox Code Playgroud)
在抛出'cv :: Exception'的实例后调用终止what():/ build/buildd/opencv-2.10/src/highgui/loadsave.cpp:403:error:( - 2)找不到编码器函数imencode中指定的扩展名
这是为什么?我安装了OpenCV 2.1.这很明显jpg编码器必须在那里:
cvSaveImage("/home/richard/im.jpg", fIplImageHeader);
Run Code Online (Sandbox Code Playgroud)
Ric*_*nop 46
好.我已经弄清楚了.这有效:
cv::imencode(".jpg", fIplImageHeader, buf, p);
Run Code Online (Sandbox Code Playgroud)
他们应该在文档中的某处提到它应该在扩展之前完全停止.
归档时间: |
|
查看次数: |
10146 次 |
最近记录: |