Я не использую ImageJ или EMGU.CV, но я поделюсь некоторыми соображениями для рассмотрения ...
(1)
Правильнозначение оттенка составляет 240 (не 170) градусов.
Оттенок для синего (0,0,255) составляет 240 градусов в цветовом круге.Обратите внимание, что это также можно сказать как -120 .
Эта логика может объяснить, почему вы "получаете пик в 120" для этого конкретного оттенка в функции AnalyzeEmgu
.
Можно восстановить из режима минус, добавив 360. Например: myHue = (-120) + 360;
, что дает результат: 240
.
(выше) Изображение предоставлено: http://www.graphic -design.com / Photoshop / color_cast / visible_color_spectrum.html
(2)
Почемугистограмма Хюэ из ImageJ дает 170 ?
Если вы посмотрите на гистограмму изображения, она достигает максимума 255 , но колесо / окружность должны быть максимально 360 .Нет логики, почему они так сделали, но это можно исправить:
IF: 360 / 255 = 1.4117647058823529411764705882353
THEN: 170 * 1.4117647058823529411764705882353 = 240 degrees.
(3)
"Использование кода ниже Iполучите шип на 120 вместо 170 "
Попробуйте
myHue = 360 - 120; //gives 240
На изображении ниже, сделанном в Photoshop, я показываю, что (начиная сверху), еслимы получаем синий цвет, он правильно указан как 240 градусов и находится на расстоянии 88 пикселей при движении вниз.
Обратное движение вверх снизу вверх, и мы видим, что такое же расстояние в 88 пикселей теперь дает 120 (зеленый оттенок).
Цветовое колесо вашего кодаперевернут (вверх ногами).Сравните A с B бок о бок.
Photoshop использует систему A , но ваше значение предполагает, что ваш код выглядит как системный B .