获取颜色距离结果的积分图像(逻辑错误)
Taking the integral image of a Color Distance result (logical error)
我正在调试一个机器人的项目,发现了一个错误,我不太确定如何从理论上修复它。
我必须计算一个彩色距离图,然后我必须拍摄结果的积分图像,并用它进行一些计算
使用实验室彩色间隔图像的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)作为归一化因子怎么样?
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 增加 gil 读取图像错误
- 在图像上覆盖文本的程序会产生无休止的字符串错误
- 卤化物:较大图像的去马赛克算法错误.似乎适用于 16x16 图像
- 视觉C++:图像序列加载错误
- SFML 库未加载错误,找不到图像
- 使用 Nvidia NPP 调整图像大小时未记录的大小调整错误
- C++/openCV - 为什么显示图像会产生 Linux 分割错误?(打开CV错误?
- 张量流错误:执行器无法创建内核。没有注册'Snapshot' 适用于 GPU 设备的 OpKernel 运行图像标签示例
- SWscaler 错误的 SRC 图像指针
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- 幼稚的过滤返回错误的图像
- OPENCV IMREAD 8BPP PNG图像错误
- TBB免费图像lambda阵列比较错误
- GTK图像突然不会刷新任何错误或警告
- 试图均衡图像时的分割错误
- glDrawArrays的意外行为-参数顺序错误会产生所需的图像
- 尝试为图像缓冲区分配内存时 ptr 值错误
- OpenCV 错误:图像步长错误(矩阵不连续)