6
我想知道是否有一种方法可以在opencv上压缩图像时轻松指定压缩系数,而无需声明虚拟向量。如果我宣布一个向量p(类似于this discussion),但只包含2项,这是imwrite需要什么,我可以拨打电话:在opencv上压缩图像(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后,我可以将明确定义的向量传递给该函数。
你有C++ 11吗? –
这是使用gcc版本4.5.2的虚拟机上运行的。 –
如果你启用了C++ 0x支持,你可以在内部声明'std :: vector({1,2})'。 –