Java 比较两种HSB颜色

Java 比较两种HSB颜色,java,c#,colors,hsb,Java,C#,Colors,Hsb,我有一个项目,它捕获了一个地区,并发现它的HSB的主色,我用找到主色 在我的代码中,我在项目启动时获得主色调,每秒钟我都会拍摄一张该区域的照片,并将其与代码中的第一种颜色进行比较: private bool IsColorChanged(Structures.HSB hsb) { //hsb is the newest dominant color of that area //m_refcolor is the main color of that ar

我有一个项目,它捕获了一个地区,并发现它的HSB的主色,我用找到主色

在我的代码中,我在项目启动时获得主色调,每秒钟我都会拍摄一张该区域的照片,并将其与代码中的第一种颜色进行比较:

private bool IsColorChanged(Structures.HSB hsb)
    {
        //hsb is the newest dominant color of that area
        //m_refcolor is the main color of that area which I got at startup
        Structures.HSB localhsb;
            localhsb.Hue = Math.Abs(hsb.Hue - m_refcolor.Hue);
            localhsb.Saturation = Math.Abs(hsb.Saturation - m_refcolor.Saturation);
            localhsb.Brightness = Math.Abs(hsb.Brightness - m_refcolor.Brightness);
            if ((localhsb.Hue >= m_hsbtr.Htreshold) || (localhsb.Saturation >= m_hsbtr.Streshold) || (localhsb.Brightness >= m_hsbtr.Btreshold))
                return true;
        return false;
    }
如果颜色更改为anycolor,我将向用户触发一个事件


我的最终目标是找出颜色是否更改为特定颜色?但我不知道该怎么办。我的意思是,我不知道如何与HSB相互比较,我使用的代码只有在我想知道颜色是否改变为任何颜色时才起作用

我用的是c#,但我对其他语言没有问题。任何帮助都会很棒。

我的问题是使用project解决的,不需要任何编码


此项目使用Delta-E来比较颜色,并支持许多颜色空间。

您可能对“我的最终目标是找出颜色是否更改为特定颜色”感兴趣:然后,如果hsb.hue=此SpecialColor.hue火灾事件,您只需执行此操作;你不需要讨论,它会把你弄糊涂的more@gpasch您是对的,但例如,红色有多种值。我有一个暗红色的区域,我想知道它是否变成了浅红色,或者甚至是黑色,它变成了红色、绿色或黄色。所以我认为这不像你说的那么容易。@TaW看起来很有趣,谢谢。我告诉你它是否解决了我的问题。@TaW我有点困惑,如果我想比较第一个HSB和第二个HSB并得到相似性呢?