Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.03.2020, 18:28
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 67
Репутация: 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 просмотров)
Ответить с цитированием
  #2  
Старый 26.03.2020, 19:23
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 104
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

У TColor цветовая модель не RGB, а BGR (если я правильно помню), т.е. два цвета переставлены местами. Сам когда-то наступил на эти грабли...
Ответить с цитированием
  #3  
Старый 27.03.2020, 15:05
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 67
Репутация: 518
По умолчанию

Да, это так, но я цвета не в ручную вытаскиваю а стандартными функциями.
Как найти формулу расчёта палитры разложенной на составляющие.. ил перевести её в HUE/CMUK.. чтобы получить линейную зависимость. Наврняка же использована готовая технология/формула.
Ответить с цитированием
  #4  
Старый 01.04.2020, 01:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,560
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Для CMYK в D7 есть готовые функции (см здесь пример, ну и можешь просто использовать этот класс для удобства: https://www.tek-tips.com/faqs.cfm?fid=7480)
Перевод в HSV см тут: https://www.swissdelphicenter.ch/en/...de.php?id=2349
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2020

ВКонтакте   Facebook   Twitter