分裂后的OpenCv轮

use*_*596 1 c++ opencv rounding approximation mat

看下面的代码

Blue = channel[0];
Green = channel[1];
Red = channel[2];

Mat G = (Green + Blue) / 2;
Run Code Online (Sandbox Code Playgroud)

其中红绿蓝是图像的通道.绿色和蓝色的总和是奇数,有时会形成一个圆形,有时是"修复".例如,对于值为120和蓝色45的绿色像素,G值为82(因此它只需要82.5的整数部分).而在另一种情况下,绿色是106而蓝色是33,我得到G的那个元素的值70(因此,它是圆的,因为(33 + 106)/ 2 = 69,5).

这是什么操作?

jet*_*t47 5

OpenCV使用"Round half to even"舍入模式.如果fraction为0.5,则舍入到最接近的偶数整数.这就是为什么82.5四舍五入到82和69.5到70.