У меня есть проект, который захватывает область и находит ее доминирующий цвет в 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;
}
Если цвет был изменен на любой цвет, я запускаю событие для пользователя.
Моя конечная цель - узнать, изменился ли цвет на определенный цвет или нет? но я не знаю, что мне делать. Я имею в виду, что я не знаю, как сравнивать HSB друг с другом, код, который я использовал, работает только в том случае, если я хочу знать, изменился ли цвет на любой цвет.
Я использовал С#, но у меня нет проблем с другими языками. Любая помощь будет потрясающей.