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