Ну, скажем, камера A - это Velvia, камера B - это ваш Nikon.
- Камера A преобразует физические цвета в виртуальные цвета («пиксели»), используя funcA.
- Камера B преобразует физические цвета в виртуальные цвета (пиксели), используя funcB.
- Создание профиля ICC (ICCA), который преобразует цвет пикселя в цвет окружающей среды просмотра.
- Создание профиля ICC (ICCB), который преобразует цвет пикселя в цвет окружающей среды просмотра.
Когда вы фотографируете, например, физический красный, в вашей среде просмотра вы увидите один и тот же красный, независимо от того, используете ли вы камеру A или B.
Красный -> funcA -> ICCA -> цвет монитора (красный) и
Красный -> funcB -> ICCB -> цвет монитора (красный).
Итак, вы можете сказать, что:
любой физический цвет C -> funcB -> ICCB -> инвертировать ICCA == funcA (физический цвет C).
И это здорово, потому что funcA (любой физический цвет) - это именно тот цвет, который выводит камера A.
Другими словами, что нужно сделать:
- генерирует инверсию ICCA
- применить инверсию ICCA к цветам пикселей в вашей среде просмотра.
Инверсией ICCA будут три кривые, R, G и B. Вы должны сделать инверсию как можно более высокого разрешения, чтобы избежать полосатости.
Что я имею в виду под "обратным"? Это означает, что если вы применяете ICCA, а затем инвертируете ICCA, вы получаете то же самое исходное изображение.
Существует довольно много инструментов с открытым исходным кодом для манипулирования данными ICC, и с помощью небольшого количества сценариев вы можете создать инвертирующее решение.
ПРИМЕЧАНИЕ: быстрый поиск показывает эту страницу , с ключевыми словами: «инвертирование профилей ICC;
пределы точности инвертирования ». Таким образом, после инвертирования профиля вы можете оказаться с ограниченной точностью и, возможно, вам придется выполнить ручную настройку инвертированной кривой.
Кроме того, не забывайте, что темные области имеют намного меньшее информационное содержание, чем яркие области, и вы увидите большее несоответствие там из-за шума квантования.