【发布时间】:2011-10-04 23:21:50
【问题描述】:
我想比较填充颜色的组件是否相等 我执行以下算法,我对 rgb 进行平均如下
double avg1 =(comp[0].Red+comp[0].Blue+comp[0].Green)/3;
double avg2 =(comp[1].Red+comp[1].Blue+comp[1].Green)/3;
然后比较它们如下
double ratio = avg1/avg2 ;
if(ratio > 0.8 && ratio < 1.2){} //then they are supposed to be equal
但这种方法根本不准确
搜索后我发现最好的方法是将图像转换为 HSL 空间并进行比较 但我不知道如何比较两种颜色?!! here
换句话说,将图像转换为 HSL 空间后,我该怎么办?!
请帮忙!!
修改问题以获得更多说明 我的意思是分量(点序列),所以在平均步骤中,实际上我重新访问了计算每个像素的 rgb 平均值之和的所有点,然后对点的总数进行平均
【问题讨论】:
-
您到底想要进行什么样的比较? “足够近”?你的用例是什么?
-
实际上我想知道两个组件是否具有相同的颜色?!然后将它们组合在一起等,,
标签: image-processing colors opencv rgb hsl