矩阵乘法导致值大于255

时间:2014-07-07 21:06:34

标签: c++ opencv

如果我在两个8UC1图像上执行矩阵乘法,或者每个元素乘法,如果其中一个像素值大于255,会发生什么?例如,如果在图像A中某个像素具有值100,并且在图像B中相同像素具有值150(对于每个元素乘法情况),则显然100 * 150> 100。 255 - 那么像素只是被截断为255值?如果是这样的话,我可以做一些转换来保存信息而不会被截断?

1 个答案:

答案 0 :(得分:3)

opencv会使uchar img的结果饱和。

为了避免这种情况,请使用例如multiply中的dtype标志,并指定一个大于输入的类型

Mat a, b; //input, CV_8U
Mat c;    // output, yet unspecified

multiply( a,b, c, 1, CV_32S ); // c will be of int type, untruncated results