【发布时间】:2011-11-06 10:04:02
【问题描述】:
我想知道是否有一种方法可以在 opencv 上压缩图像时轻松指定压缩因子,而无需声明虚拟向量。如果我声明一个向量 p(类似于 this discussion),但只包含 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>());
谢谢!
更新: 激活 C++0x 后,我可以将内联显式定义的向量传递给函数。
【问题讨论】:
-
这是在 gcc 版本 4.5.2 的 VM 上运行
-
如果启用 C++0x 支持,可以说
std::vector<int>({1,2})inline。 -
是的,就是这样;)谢谢
-
将您的更新放入回答并标记为“已回答”。
标签: c++ image graphics vector opencv