我想知道是否有一种方法可以在 opencv 上压缩图像时轻松指定压缩因子,而无需声明虚拟向量。如果我声明一个向量 p (类似于这次讨论 https://stackoverflow.com/questions/801054/opencv-cvsaveimage-jpeg-compression-factor),但只包含 2 个项目,这是 imwrite 所需要的,我可以拨打电话:
vector<int> p(2);
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>());
Thanks!
Update:激活 C++0x 后,我可以将显式定义的内联向量传递给函数。
正如所建议的,激活 C++0x 允许我将显式定义的内联向量传递给函数。这解决了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)