如何使用阈值使用范围来处理色调的较大变化



我想使用opencv的inrange函数在HSV颜色空间中对颜色图像进行二进制。

我发现有一些RGB值,色相值会发生巨大变化。例如 1)RGB值:56、40、39其HSV值:2、77、56 2)RGB值:56、40、41 ITS HSV值:178、73、56

因此,在这种情况下,两种RGB颜色都非常接近,而且看起来也相似,但是它的色调值差异很大,现在,如果我们使用2到178的色调,则二进制范围比其错误。

因此,使用阈值范围在HSV色彩空间中进行二分和图像的正确方法。

您必须记住,HSV表示的H组成是循环的,就像时钟上的数字一样,"规范"范围为[0,360)(还有其他选项,例如[0,1)或[0,180)使用不同的通道深度,在您的情况下,它是[0,180)适合UCHAR范围的)。

实现自己想要的最简单方法是自己迭代图像像素,检查2条条件,类似的条件:(h > 170) || (h < 10)并根据这是否为trim。

用您的值绘制圆圈并查看您要覆盖的范围以及您应该使用什么表达方式会很有帮助。

最新更新