Reply to comment
Вопрос по API, использование libraw_colordata_t
Submitted by pell on 12 November, 2009 - 20:49Приветствую!
В libraw_colordata_t декларирован ряд полей для преобразования RAW RGB величин в цветовые координаты, как то:
* float cam_xyz[4][3] матрица преобразования из камерного RGB в XYZ;
* float cmatrix[3][4] матрица баланса белого;
* float rgb_cam[3][4] еще одна матрица баланса белого;
* float cam_mul[4] коэффициенты баланса белого (as shot);
* float pre_mul[4] коэффициенты баланса белого для дневного света (Daylight balance).
Насколько я понимаю, обычный сценарий при RAW конвертации:
а) (фон Криссовская) балансировка белого умножением RAW RGB величин на коэффициенты, приводящие нейтраль к R=G=B;
б) (линейное) преобразование полученных балансированных RGB величин в наперёд заданное цветовое пр-во, например, PCS XYZ, линейный sRGB и т.д.
В такой сценарий хорошо вписываются комбинации умножить RAW значения на коэффициенты из cam_mul[4], преобразовать в XYZ при помощи cam_xyz[4][3] и (помолясь на дневной свет) умножить RAW значения на коэффициенты из cam_pre[4], преобразовать в XYZ при помощи cam_xyz[4][3] . В таком случае возникает вопрос:
1) полученные данные это PCS XYZ значения?
Не очень понятно, что такое cam_rgb и cmatrix. Есть гипотеза, что первое это отклики сенсора на sRGB кардиналы: cam_xyz[0] четыре отклика сенсора на красный, cam_xyz[1] на зелёный и cam_xyz[2] на синий. Второй вопрос:
2) каковы сценарии использования cam_rgb и cmatrix?