Помогите доделать код к датчику цвета

Неправильно немного.
1 Наводим датчик на нужный цвет и получаем его код
2 переводим в hex , запоминаем
3 от этого числа делаем ± определенные погрешности
и не надо использовать TrueColor. вполне для задачи тп хватит и 256 цветов.

Ну вот, кстати, и оно: белый цвет это по определению 6000К. Если провести перпендикуляр с 6000К, то он пройдет как раз через зеленую область. А перпендикуляр - это единственный разумный способ свести в данном случае двумерное поле к одномерной кривой.

А вот почему датчик на зеленый дает 3400К, - тут может быть несколько причин:

  1. Не совсем зеленый объект.
  2. Не совсем белое освещение.
  3. Систематическая погрешность датчика.
  4. “Кривой” (т.е. не “перпендикулярный”) алгоритм вычисления за пределами кривой.

Кстати, IMHO наиболее вероятен 4-й вариант (при том, что в той или иной мере обязательно присутствуют и остальные 3) - формула подобрана так, чтобы давать вменяемый результат только вдоль кривой, а на остальное - начхать. Хотя, по хорошему, следовало бы оценивать достоверность преобразования и в случае явно недостоверного вместо яркостной температуры выдавать ноль или -1.

Ну и еще пару слов о задаче.
У нас есть трехмерное поле (координаты R, G, и B), которое нам надо как-то свести к единственному измерению - “расстоянию” от G. И по величине этого “расстояния” делать вывод - зеленое или нет.
Первый шаг - свести к чему-то подобному HSV, ну не обязательно HS, но главное выделить яркость и цветовую плоскость, после чего яркость проигнорировать, сократив таким образом количество измерений до двух.
Ну а второй шаг - сократить количество переменных с 2 до 1. Это можно сделать разными способами, но очевидно, что “цветовая температура” - способ явно не подходящий для нашей задачи.
Третий шаг - на всякий случай - сравнить с пороговым значением и сделать вывод.

Собственно, мысль, которую я уже неоднократно высказывал на прошлом форуме: чтобы написать хорошую программу, совершенно недостаточно уметь хорошо программировать, главное - хорошо разбираться в предметной области задачи.
Ну а тут как обычно - все люди разные: кто-то за задачу не берется, тем не менее делая анализ предметной области, а кто-то - в предметной области не разбирается и даже не считает это нужным, но задачу готов сделать.

Нет, ну это просто в перлы!
Еще один пример того, как человек, абсолютно не разбираясь в задаче, пытается делать столь категоричные (причем, не только неправильные, но еще и абсолютно глупые) выводы.

Второй пункт, кстати, туда же: вместо преобразования RGB-HSV делаем RGB-hex, и - главное - не забыть запомнить.

Не надо делать категорических выводов и изобретать машинное зрение на ардуинке. Человеку нужно распознавать приблизительно один цвет для фильтрации.

Отбраковывать сильно зажаренные блинчики на транспортерной ленте :smiley:

А по мне так - не стоит гадать по температуре сосиски о её здоровьи.

Из самого определения цветовой температуры - “The color temperature of the electromagnetic radiation emitted from an ideal black body is defined as its surface temperature in kelvins, or alternatively in micro reciprocal degrees (mired)”, следует факт того, что она применяется только для измерения цветности и только нагретых тел, изначально не обладающих каким либо цветом (ни синим, ни желтым, ни красно-буро-малиновым в крапинку). Т…е. тел, начинающих самостоятельно испускать электромагнитные волны вследствие нагрева. О чем нам, кстати, сразу намекает единица измерения “Кельвин”, применяющаяся в термодинамической системе, а не колорометрической.

То, что нагреваемое тело излучает ряд оттенков, по названию совпадающих с отражаемыми разными поверхностями оттенками, предлагаю считать трагическим недоразумением, которое приводит бормалеев к неверным выводами.

Так же считаю, что преобразование в HSV и дальнейший анализ Hue является в данном случае более выигрышной стратегией.

Просто ответь - обещание собираешься исполнять или сольёшься после фейла, как всегда? То, что хорошо хвостом вилять умеешь - мы уже знаем.

1 лайк

Да, как только ты напишешь программу за 500р, я ТЕБЕ добавлю свои 500. Я ж написал. Доширак купиш

Ну это по нормальному цветовая температура есть у нагретых тел. А у китайцев на светодиодных лампочках цветовая температура написана. У них всё через зад. Тупые. Не знают термодинамики.
Возможно и формула определения цвета на холодной бумажке кривая. У неё то температура 20 градусов, сама не светится.
Ну суть не в том. Наверняка зелёный на бумажке не чисто зелёный, а с оттенками других цветов. Кто знает, что они там намешали. Но датчик чётко различает этот цвет от других. И показывает наверняка фейковую температуру. Среднюю по Китаю. А какая разница для данного случая? Главное, он увидит, что бумажка не белая, не красная, не синяя. Не зелёная? И хрен с ней. Подносится к датчику нужная бумажка, читается её цвет, заносится циферка в программу и она будет именно по этой циферке определять, что поднесена именно эта бумажка. Там не подбор оттенков для покраске авто нужен. И температура сосиски неважна. Горячая она или холодная, понюхал - воняет. Протухла.

Сначала выполняешь своё обещание, затем размещаешь заказ на “программу” в разделе “Ищу исполнителя”.

Балабольство тут тебе не поможет - слив зафиксируем.

Программу кстати написали) очень хорошая , все оттенки нужного цвета которые у меня есть распознает ) Причем в программе все понятно и ясно где если что нужно поменять) в любой деятельности есть факт , факт успеха или факт провала) Вот вам наглядный пример)) вы искали критерии а нашли бумажку , кто то искал решение и нашел денежку) и сумма неважна тут ) тут важен образ мышления) умножаем это на год и вуаля)) у кого то деньги а у кого то бумажки :wink:

и кто так отличился, назовите поименно?

Практика - критерий истины. Поработаете - будет ясно, все ли сделано правильно :wink:

Тебя не сдадут, будь спокоен (шутка). )))

… понимаешь что разбогател на 8000 рублей и прекращаешь тратить время на всякие мусорные заказы.

А еще понимаешь что имеешь склонность к обесцениванию )) есть люди для которых и 8000 за заказ это мусор)) а для кого то и 200 р деньги) я бы порекомендовал называть это профессионализм ) по критериям профессионализма ты профи и он профи ) а по твоим критериям богатство и мусор ты будешь когда-то мусором а когда-то богатым)) как в треугольнике Карпмана будешь меняться и отыгрываться на других)) и выбор между ничего за пол часа и 500 р это риторика)) может человек параллельно и за 330 к заказ делает )) и для души просто помог) и не стал писать тебе что он не делает мусорные заказы за 8000)) :wink:

месье психолог?

скорее, педивикинг

а это что?

по простому: начитавшийся Вики