获取颜色距离结果的积分图像(逻辑错误)

Taking the integral image of a Color Distance result (logical error)

本文关键字:错误 图像 距离 颜色 结果 获取      更新时间:2023-10-16

我正在调试一个机器人的项目,发现了一个错误,我不太确定如何从理论上修复它。

我必须计算一个彩色距离图,然后我必须拍摄结果的积分图像,并用它进行一些计算

使用实验室彩色间隔图像的A和B通道,我使用公式sqrt([A-pA]^2+[B-pB]^2)获得颜色距离,例如红色(pA=255,pB=127)

subtract(mA, Scalar(pA), tA);
subtract(mB, Scalar(pB), tB);
tA.convertTo(t32A, CV_32SC1);
tB.convertTo(t32B, CV_32SC1);
pow(t32A, 2.0, powA);
pow(t32B, 2.0, powB);
add(powA, powB, sq);
pow(sq, 0.5, res);
//res.convertTo(result, CV_8UC1);

由于CV_8U处理值超过255的限制,我需要转换为CV_32S。

现在我必须将结果输入到积分图像中,这只需要CV_8UC1的图像。

我面临的问题是,前面提到的颜色距离函数可能会产生值超过255的像素。

例如:(0,0)到红色(255127)之间的距离

sqrt((0-255)^2+(0-127)^2)=285

或介于(0255)至红色(255127)之间

sqrt((0-255)^2+(255-127)^2)=285

有人对我如何在不丢失任何信息的情况下将结果输入到积分图像有任何建议吗。

感谢

使用sqrt(2)作为归一化因子怎么样?