Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13

Получения температуры из RGB изображения

23.06.2017, 23:19. Показов 5246. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, столкнулся с такой проблемой!
Имею RGB изображение детали, которая разогрета до температуры 1000 градусов!
И мне необходимо, в том или ином пикселе узнать какая температура, где больше где меньше!
Нужен алгоритм перевода, безусловно если такой существует.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2017, 23:19
Ответы с готовыми решениями:

Перевод температуры в RGB
Поскольку прога пишется на C# то решил написать в этом разделе. Задание такое: Есть целочисленная матрица со значениями от -500 до + 500...

Алгоритм получения значения RGB каждого пикселя картинки
Имеется произвольная цветная картинка на компе.Каким образом вытянуть из нее значения RGB каждого пикселя для последующей обработки на...

Чтение регистра MSR для получения температуры
У меня процессор Intel Core i3, вроде как можно получить значение температуры процессора из регистра MSR. Поискал в интернете, нашел...

36
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
29.06.2017, 22:30
Студворк — интернет-сервис помощи студентам
jazator, вот и ждём готовых снимков, от автора, чтобы посмотреть, что с ними делать.
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
02.07.2017, 13:48  [ТС]
Захарка, Привет раньше не мог отписаться, работал над этим экспериментом, вот как выглядят снимки с обоих камер! И нужно как не будь определить по снимку с камеры Microtron MC1363 какая температура основываясь на снимку с камеры тепловизора Flir ThermaCam e300! Вот такие снимки:
Миниатюры
Получения температуры из RGB изображения   Получения температуры из RGB изображения  
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
02.07.2017, 16:38  [ТС]
вот еще фото самих камер
Миниатюры
Получения температуры из RGB изображения  
0
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
02.07.2017, 20:44
Ewan_mc, А в большем разрешении снимка с тепловизора нету? Всё же 320х240 маловато, а шкала цветов явно отличается от той, что в теме до этого был, так что класс прийдётся перекалибровывать. А в остальном - завтра буду думать над задачей, отпишусь, когда что-нибудь будет.
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
02.07.2017, 23:33  [ТС]
Захарка, в том и дело что нет в большом разрешении! камера годов 95-98 и снимки поэтому такие! снимки полученные с помощью ПО которое шло вместе с камерой QuickReport1.0!
А вот с другой камерой так там вобще огонь! там видео ролики по 5-6 гигабайт, 5fps, длиной 20 секунд! Так я эти снимки получил с помощью VirtualDub!
0
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
03.07.2017, 12:47
Ewan_mc, 100 кадров, 720х662 весят 5 гигов О_о... КАК?
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
03.07.2017, 12:54  [ТС]
Захарка, слегка соврал, ролик 16 секунд - 850 мегабайт видео AVI
0
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
04.07.2017, 01:25
Ewan_mc, Всё рано как-то многовато. Но, если AVI, тогда ещё как-то... Короче, вечером буду смотреть.

Добавлено через 12 часов 29 минут
Ewan_mc, уфффф... Чувак, ну и задал ты задачку... Короче говоря, по пунктам переделки того, что было и что нужно сделать:
1) Переписать алгоритм создания линейки цветов-температуры. Новый алгоритм будет выглядеть так: Ему на вход подаётся линейка вырезанная из фото от тепловизора, и он основываясь на ней строит свою линейку температур. Очевидно - чем выше разрешение изображения, тем более точным будет определение температуры. В данном случае точность будет весьма посредственной.
2) Создать алгоритм совмещения изображений. Честно говоря тут пока затык, хотя мысли есть, но тут тоже всё будет звездец каким относительным.
3) При помощи совмещения изображений по координатам пикселя на картинке с обычной камеры получить примерные координаты пикселя на тепловизоре, и из них уже получить температуру.
4) Программа получения цвета пикселя тут уже не подойдёт. Нужно писать немного другую.
Вот. Постараюсь помочь вам, но по срокам - очень хз, сейчас работы очень много навалилось. Максимум что смогу выделить - по 1,5-2 часа по вечерам/ночам. =(
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
05.07.2017, 17:57  [ТС]
Захарка, большое спасибо вам и так за помощь! буду очень благодарен будь-чему!, еще попытаюсь связаться с руководителем, и спросить может что нибудь изменить в самой структуре! о, еще забыл сказаь - там на фотках с камеры есть фотки с разным временем выдержки! 500 мили секунд, 2000, 400, 200

Добавлено через 16 часов 38 минут
Захарка, вот еще че! Тема работы это анализ возможности использования дистанционного измерения температуры( и в моем случае сравнения двух камер! в случае с камерой цветной просто нужно сказать возможно ли это или нет! и не важно с какой точностью это будет! это уже к итогам! главное сделать потом анализ, и чтоб было что анализировать!
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
05.07.2017, 20:45
Цитата Сообщение от Ewan_mc Посмотреть сообщение
Тема работы это анализ возможности использования дистанционного измерения температуры
Тема работы несколько странная. Конечно это возможно. Камера улавливает мощность излучения. А мощность излучения напрямую зависит от температуры тела по закону Планка. Поэтому ответ на вопрос очевиден - это возможно.
Разница между тепловизором и камерой только в том, что тепловизор улавливает более длинноволновое излучение, чем RGB камера, вот и вся разница.
Цитата Сообщение от Ewan_mc Посмотреть сообщение
Имею RGB изображение детали, которая разогрета до температуры 1000 градусов!
И мне необходимо, в том или ином пикселе узнать какая температура, где больше где меньше!
Нужен алгоритм перевода, безусловно если такой существует.
В-первых немного теории. Нагретое тело излучает свет. Мощность излучения абс черного тела зависит только от температуры и длины волны. Эта зависимость выражается формулой Планка:
Название: 0_0.png
Просмотров: 35

Размер: 2.4 Кб
Если мы зафиксируем длину волны и будем измерять излучение только для этой волны, то мощность излучения будет зависеть только от температуры и зная мощность можно однозначно определить температуру.
Это нам и нужно. Проблема же заключается только в том, что "яркость" пиксела это безразмерная величина и она связана с мощностью некоторым коэффициентом k:
pixel = k*u
где pixel - яркость пиксела на определенной длине волны (0-255), u - мощность излучения тела на той же длине волны (из формулы Планка), k - неизвестный коэффициент зависящий от чувствительности конкретной камеры.
Для простоты, считаем, что зависимость между мощностью излучения и яркостью пиксела - линейная (хотя у меня есть сомнения в этом, но как начальное приближение - сойдет).
Ваша задача - найти коэффициент k. Для этого вашу камеру нужно прокалибровать с помощью тепловизора.

На практике это можно сделать следующим образом:
1) Из вашей картинки нужно брать только один канал - R или G или B. Если температуры тела будут в районе 1000 градусов, то очевидно нужно брать канал R, потому что слабо нагретые тела излучают в R больше.
2) Теперь камеру нужно прокалибровать и найти коэффициент k. Для этого, нужно найти самый яркий пиксел на картинке вашей RGB камеры (самый яркий только в R канале конечно, как мы решили в п1). Очевидно, что он будет соответствовать самой высокой температуре, которую показывает тепловизор. В вашем случае самый яркий пиксел будет соответствовать температуре 1047 C (или 1060, я не очень понял почему в вашем тепловизоре максимум шкалы не совпадает с самым горячим пикселом).
Затем подставляем температуру в формулу Планка (не забываем перевести в Кельвины). В качестве длины волны - берем длину волны для красного цвета (потому что мы меряем только красный канал). Из формулы Планка получаем u. Значение pixel - нам известно. Таким образом находим коэффициент k.
3) Теперь, когда камера откалибрована, можем узнать температуру любого пиксела. Для этого яркость пиксела в R канале преобразуем в мощность:
u = pixel_R / k
А затем из u узнаем температуру по формуле Планка.

Конечно все это довольно приблизительно и упрощенно. Потому что формула Планка верна для абс черного тела, которым ваше тело не является. И потому что зависимость мощности и яркости пиксела может быть более сложной, например такой
pixel = k * u + a или вообще быть нелинейной. Кроме того, конечно подразумевается, что параметры камеры не меняются и у нее выключена автоматическая экспозиция. И т.д.
Тем не менее, получить более-менее правдоподобную температуру можно.
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
06.07.2017, 01:13  [ТС]
Storm23, большое спасибо за инфу! Так и буду делать! Еще раз спасибо!!!
0
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
06.07.2017, 01:20
Storm23, хмм... Ну, дятел я в физике, щито поделать =)
Но мой вариант, имхо - интереснее =)
Ewan_mc, мне делать класс, по формулам уважаемого Storm23, или сами справитесь?
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
06.07.2017, 01:26  [ТС]
Захарка,Попробую сам! Завтра попытаюсь сделать в матлабе чтобы из картинки достать весь канал R! и тогда уже буду просто проводить расчет по формулам и об этом писать в самой работе! Думаю к понедельнику что то сделаю, тогда уже и отпишусь что и как!
0
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
06.07.2017, 01:27
Ewan_mc, окей. Удачи вам =)
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 13
14.07.2017, 11:11  [ТС]
Storm23, Захарка, здравствуйте! сделал я все как было здесь написано, провел анализ, рассчитал коэффициент, даже прога есть написана которая считает температуру по той зависимости! Но профессор сказал что это слегка бред! что нужно сделать следующее:имея RGB для температуры, построить графики где будет по оси X, Y пиксели изображения а по оси Z температура! как это сделать я не имею малейшего понятия
0
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
14.07.2017, 13:10
Ewan_mc, О-о.... Вы же в том же матлабе ковыряли? Там можно построить трёхмерный график, по точкам. Просто проходитесь по всем пикселям изображения с обычной камеры, и переносите значения на график.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
14.07.2017, 19:08
Цитата Сообщение от Ewan_mc Посмотреть сообщение
Но профессор сказал что это слегка бред!
Что именно бред?
Цитата Сообщение от Ewan_mc Посмотреть сообщение
построить графики где будет по оси X, Y пиксели изображения а по оси Z температура
И в чем тут проблема? Если вы для каждого пикселя можете определить температуру, то построить такой график - не проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.07.2017, 19:08
Помогаю со студенческими работами здесь

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

Восстановление изображения по RGB
Здравствуйте, у меня есть картинка загруженная в массив структуры: struct r_g_b {float r, float g, float b} - color_display, и отображена в...

Гистограмма изображения по компонентам RGB
Здравствуйте! Пытаюсь построить гистограмму по трём цветовым компонентам из исходного изображения. И не пойму самой сути. Я верно понимаю,...

Извлечение rgb составляющих изображения
Добрый день, уважаемые форумчане. Мне нужно извлечь из картинки rgb значение цвета и построить 3 трёхмерных графика, в которых x, y -...

Разделение изображения по каналам RGB
Нужна помощь, надо разделить изображение по каналам RGB, чтобы получить в итоге три отдельных изображения. Потом нужно разделить из на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru