Мне было интересно, есть ли способ легко указать коэффициент сжатия при сжатии изображений в opencv, не объявляя фиктивный вектор.Если я объявлю вектор p (похожий на это обсуждение ), но содержащий только 2 элемента, что и берет imwrite, я могу сделать вызов:
vector<int> 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<int>& params=vector<int>());
Спасибо!
Обновление: После активацииC ++ 0x, я могу передать вектор, явно определенный встроенный в функцию.