Показать сообщение отдельно
  #1  
Старый 25.03.2020, 18:28
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 69
Репутация: 518
По умолчанию Delphi 6-7 Работа с данными тепловизора

Задача - сграбить с экрана фирменной утилиты тепловизора термограмму и найти температуры нужных точек перемещая мышь по изображению.
Фирменная утилита в своей форме в ОНЛАЙН показывает как веб-камера красочное изображение температурного поля, рядом горит шкала палитры от синего до

красного и второй вариант - как радуга.
Границы температур заданы +18 до +103С, тоесть я точно знаю что самый синий это +18 а самый красный +108 градусов цельсия. Всего точек - 310 штук. Накидав

код переходя одного цвета в другой я рисую палитру и по коэффициенту получаю зависимость цвет-температура...
Но, как всегда НО... палитра прибора содержит зелёный цвет!!! сравнив их визуально а потом и разложив на RGB. У меня нет оттенка жёлтого а у них есть.

Сравнивая чисто по величине TColor (R,G,B)я почти попадаю в цвет, но иногда сумма цветов даёт такое число что попадает в границу отличную от искомой - так

как цвета не чистые.. Причём с радугой ещё сложнее!! там цвета дважды уходят в максимум и минимум!! и одно число скажем 8934546+-50 будет и внизу палитры

и вверху палитры а цвет то сильно будет отличаться!!! по этому прямое сравнение по числу TColor не катит.
Есть другие модели HSV/CMYK - но они же не годятся для захвата с экрана и конвертация всегда идёт с ошибками.
Какая модель использована и как можно вычислить палитру? (фирмачи SDK не дают )
Пример 3х палитр во вложении.
Изображения
Тип файла: jpg палитры ti400.jpg (17.8 Кбайт, 0 просмотров)
Ответить с цитированием