似乎给定一个多通道图像img
我不能这样做:
img *= cv::Scalar(1.5,0.5,2.1);
我想用不同的 float 因子缩放每个频道 有一个简单的方法吗?
我可以使用cv::transform()
,但这似乎有点过分(我显然也不想手动和显式迭代在所有像素上。)
有什么建议吗?
答案 0 :(得分:5)
您可以使用multiply
:
cv::Mat3b m = ... ;
cv::multiply(m, cv::Scalar(2, 3, 4), m);
或者,正如@AdiShavit所建议的那样:
cv::Mat3b m = ... ;
m = m.mul(cv::Scalar(2, 3, 4));