OpenCV - не удалось найти кодировщик для указанного расширения - PullRequest
13 голосов
/ 23 ноября 2010

Вот мой код, который я использую для преобразования * 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 Ответ

45 голосов
/ 23 ноября 2010

Хорошо.Я понял это.Это работает:

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

Они должны упомянуть где-то в документации, что перед расширением должна быть полная остановка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...