сравнить два компонента с их цветами - PullRequest
2 голосов
/ 14 июля 2011

Я хочу сравнить компоненты с их заполненными цветами, если они равны или нет, я делаю следующий алгоритм, я делаю усреднение для 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 и сравнить, но я не могу понять, как сравнить 2 цвета?!! здесь

другими словами после преобразования изображения в пространство HSL, что я могу сделать?!

помогите пожалуйста !!

модификация к вопросу для большей ясности я имею в виду компонент (последовательность точек), так что на этапе усреднения я на самом деле возвращаюсь ко всем точкам, вычисляя сумму среднего значения rgb для каждого пикселя, затем делаю усреднение по общему количеству точек

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Так что, если ваш вопрос "после преобразования изображения в пространство HSL, что я могу сделать ?!" тогда вот идет:

  1. конвертируйте загруженное вами изображение RGB в HSL, используя cvCvtColor() с флагом CV_RGB2HLS (естественно, изображение HSL должно быть 3-канальным)
  2. сделать три одноканальных изображения (одинакового размера) для каналов H, L, S для разделения на
  3. cvSplit( hls, h, l, s, 0 ) для разделения изображения HSL на каналы
  4. Теперь h_image будет таким же, как любое одноканальное изображение в градациях серого. Поэтому после извлечения компонентов (сделайте это с пороговым значением изображения RGB, иногда изображение канала Хюэ выглядит странно: P) просто сравните цвета в изображении оттенка, которые соответствуют их координатам.

Надеюсь, это поможет.

1 голос
/ 14 июля 2011

Преобразовать в HSL и использовать разницу в H (оттенок) для группировки цветов.

...