Тема закрыта

Цифровой колорметр i2c

Всего 1 сообщ. | Показаны 1 - 1
Цифровой колорметр i2c
В домашних условиях на коленке: самодельный колорметр.
Где бы найти приличный корпус? Наверное, можно заказать на 3D принтере?
И еще вопрос: кто-нибудь калибровал в домашних условиях колориметры?
Буду благодарен за советы.
Я узнал о микросхеме TCS34725 из инструкции к Argyll Color Management System
— именно на этой микросхеме-датчике был сделан первый «любительский» колориметр
для калибровки дисплеев. Микросхема также популярна в мире контроллеров Ардуино
- она позволяет «определить» цвет предмета, иногда ее встраивают в роботов.
Так что когда я недавно пришел к выводу о необходимости работы с колорметром для
декодирования raw-файлов, то купил уже готовую плату с микросхемой TCS34725
(цена мизерная, где-то от 200 до 500 руб., зависит от производителя).
В общем-то написать программу тоже легко — в Сети лежит готовая библиотека для
работы с микросхемой по i2c, где как пример предоставлен класс расчета цветовой
температуры (между прочим, путем несложных манипуляций на С++ этот класс также
можно дописать для использования с датчиком цвета и жестов APDS-9960, однако
точность этого датчика невелика). На все про все я потратил где-то два вечера,
причем самым сложным оказалось «запаковать» дисплей и плату самодельного колорметра
между двумя пластинами стеклотекстолита. Да, увы, нужен хороший корпус.
Удивительно, но микросхема вполне подходит для моих целей и ее точности
хватает для необходимых фотографических измерений (конечно, это не спектрофотометр).
А понадобился мне колорметр по следующей причине.
В известных программах и библиотеках dcraw и dcraw_emu баланс белого рассчитывается
по множителям каналов rgbg. Это значит, что указывая четыре множителя, мы можем
установить в программе необходимую цветовую температуру.
Для примера так будет выглядеть опция -r 2.646060 1.000000 1.085322 1.000000
для пользовательской цветовой температуры.
Dcraw для алгоритма работы с балансом белого использует 4 умножающих коэффициента,
что позволяет масштабировать каждый из каналов изображения rgbg матрицы Байера
(баланс белого применяется до демозаики). Коэффициенты 2 и 4 будут одинаковыми,
поскольку они соответствуют зеленым каналам.
Конкретный баланс белого рассчитывается ни как абсолютный набор значений для
всех множителей, а как относительные пропорции между ними. Ну и понятно, что
применяемые "правильные" значения будут отличаться от камеры к камере.
На практике это потребует простой процедуры: сделать несколько кадров с
настроенной в меню цветовой температурой (например, указать сначала 4500 К,
затем 2800 К и т. д.), затем с помощью команды dcraw -v -w посмотреть
результаты (узнать множители для той или иной цветовой температуры камеры).
Таким образом, с помощью колорметра можно будет замерять цветовую температуру и
выставлять в программе соответствующие множители.
Ну и теперь о самом устройстве. Библиотеку можно посмотреть, например, вот
здесь https://github.com/adafruit/Adafruit_TCS34725
Но для датчика написано несколько библиотек, так что можно найти ту, которая
устраивает лично вас.
Цветовая температура считается по известной и в данном случае не очень точной
формуле, когда сначала RGB переводится в XYZ, ну а затем производится расчет.
Выглядит все это дело так.
X = (-0.14282F * r) + (1.54924F * g) + (-0.95641F * b);
Y = (-0.32466F * r) + (1.57837F * g) + (-0.73191F * b);
Z = (-0.68202F * r) + (0.77073F * g) + (0.56332F * b);
xc = (X) / (X + Y + Z);
yc = (Y) / (X + Y + Z);
// по Маккеми
n = (xc - 0.3320F) / (0.1858F - yc);
// В итоге получаем следующее, cct и есть цветовая температура в Кельвинах
cct =
(449.0F * powf(n, 3)) + (3525.0F * powf(n, 2)) + (6823.3F * n) + 5520.33F;
Можно посмотреть и почитать здесь, если кому интересны подробности
https://en.wikipedia.org/wiki/Color_temperature (статья из Вики на английском)
Здесь даташит https://cdn-shop.adafruit.com/datasheets/TCS34725.pdf
PS Увы, микросхема не обладает высоким быстродействием, так что будет трудно
замерить цветовую температуру фотовспышек или мерцание светодиодов-лампочек.


https://sun9-45.userapi.com/impf/IaSpOQOWAiqd1M1F1WPzZVEOwrl4yyQZakWw7Q/8gojaGdLdAY.jpg?size=1280x855&quality=95&sign=ba739070a6a6013ecf232ebdb396364b&type=album
Вы не авторизованы

Пожалуйста, авторизуйтесь, чтоб иметь доступ к полному функционалу сайта