|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Delphi 6-7 Работа с данными тепловизора
Задача - сграбить с экрана фирменной утилиты тепловизора термограмму и найти температуры нужных точек перемещая мышь по изображению.
Фирменная утилита в своей форме в ОНЛАЙН показывает как веб-камера красочное изображение температурного поля, рядом горит шкала палитры от синего до красного и второй вариант - как радуга. Границы температур заданы +18 до +103С, тоесть я точно знаю что самый синий это +18 а самый красный +108 градусов цельсия. Всего точек - 310 штук. Накидав код переходя одного цвета в другой я рисую палитру и по коэффициенту получаю зависимость цвет-температура... Но, как всегда НО... палитра прибора содержит зелёный цвет!!! сравнив их визуально а потом и разложив на RGB. У меня нет оттенка жёлтого а у них есть. Сравнивая чисто по величине TColor (R,G,B)я почти попадаю в цвет, но иногда сумма цветов даёт такое число что попадает в границу отличную от искомой - так как цвета не чистые.. Причём с радугой ещё сложнее!! там цвета дважды уходят в максимум и минимум!! и одно число скажем 8934546+-50 будет и внизу палитры и вверху палитры а цвет то сильно будет отличаться!!! по этому прямое сравнение по числу TColor не катит. Есть другие модели HSV/CMYK - но они же не годятся для захвата с экрана и конвертация всегда идёт с ошибками. Какая модель использована и как можно вычислить палитру? (фирмачи SDK не дают ) Пример 3х палитр во вложении. |