Я задавался вопросом, можно ли легко задать коэффициент сжатия при сжатии изображений на opencv без объявления вектора манекена. Если я объявлю вектор p (аналогично этой дискуссии), но содержащий только 2 элемента, что иммрайтерует, то могу сделать вызов:
vector p;
p[0] = CV_IMWRITE_JPEG_QUALITY;
p[1] = 50; // compression factor
imwrite("compressed.jpg", img, p);
Все вышесказанное работает нормально. Однако, я хочу сжимать одну и ту же картинку с несколькими коэффициентами сжатия в цикле. Есть ли способ явно передать параметр для imwrite? Что-то вроде:
imwrite("compressed.jpg", img, {CV_IMWRITE_JPEG_QUALITY, factor}); // this doesn't work
В качестве примечания, заголовок функции:
bool imwrite(const string& filename, const Mat& img, const vector& params=vector());
Спасибо!
Update: После активации C++0x я могу передать в функцию вектор, явно заданный inline.