c++ - 矩阵乘法导致值大于 255

标签 c++ opencv

如果我在两个 8UC1 图像上执行矩阵乘法或每个元素乘法,如果其中一个像素值大于 255 会怎样?例如,如果在图像 A 中某个像素的值为 100,而在图像 B 中该相同像素的值为 150(对于每个元素乘法的情况),那么显然 100*150 > 255 - 该像素也会简单地被截断为 255值(value)?如果是这样,我是否可以进行一些转换来保留该信息而不会被截断?

最佳答案

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 

关于c++ - 矩阵乘法导致值大于 255,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24619890/

相关文章:

c++ - 使用 lambda 访问成员函数内的类模板参数类型失败

c++ - zip 中的无效压缩数据

c++ - Qt 重载运算符

opencv - opencv c++ HSV图像 channel 分离异常

python - 使用欧氏距离计算 2 个直方图之间的距离

opencv - Raspberry pi交叉编译设置中的Config.cmake缺少错误

c++ - 类型转换一个 const void*

c++ - GCC 中的不同模板错误格式?

c++ - OpenCV 2.3 (C++) 中的 PCA 项目和反向项目

python - 退出函数在带有 python 的 OpenCV 中不起作用