Render.ru

обратимые изменения изображения

zzorro

Пользователь сайта
Рейтинг
2
#1
здравствуйте!!
возник такой вопрос, а можно ли както обратимо изменить контрастность изображения
мне говорят, что это полный unreal, а очень хотелосьбы..
Я реставрирую старые фильмы и прога видит и убирает почти все яркие точки, но менее яркии не замечает. Неплохо было бы сделать секвенцию более контрастной,а после обработки, контрастность вернуть на прежний уровень. Понимаю, что с 8битами на канал такой фокус пройти не может, но есть же всякие floating point форматы... ?
 
#2
не совсем понял или понял, но не так...

Неплохо было бы сделать секвенцию более контрастной,а после обработки, контрастность вернуть на прежний уровень
Если вопрос только в этом, то удали нод контрастности, который ты применял для обработки.
 

zzorro

Пользователь сайта
Рейтинг
2
#3
я точки из кадров не во фьюжене убираю... если бы во фьюжене был плагин убирающий точки, то это понятно, что ставишь нод яркость контрастность, прогоняешь, а потом нод удаляешь(я так при стабилизации делаю, так как за более контрасное изображение трекеры лучше цепляются). но мне желательно както прогнать кадры через фьюжен, и сохранить их более контрастными, потом програть в программе, которая убирает точки, а потом опять во фьюжене понизить контрастнось.


изначально у меня идут файлы bmp. я думал что если например сохранить кадры с 32 битами на цвет, то можно контрастность обратимо изменить. тоесть если я изменяю контрастность в файле где 8 бит на цвет, то при повышении контрастности, вся информация о цвете, которая не влазит в 8 бит, обрезает и уже не подлежит восстановлению. Я думал, что если в файле где 32 бита на цвет поднять контрастность, то новые значения не обрежутся, а уместятся в 32 бита и потом их можно будет вернуть на место, но не получается.
 

zzorro

Пользователь сайта
Рейтинг
2
#4
просто видно преобразование 8 бит в 32 происходит не так как я подумал. Максимольное значение цвета в 8 битах преобразуется в максимально в 32-ух
 

Григорий Чаленко

Куратор форума
Команда форума
Рейтинг
948
#5
Если между повышением и понижением контрастности нет преобразований в 8 или 16 бит интеджер, то можно совершенно безнаказано:
1. Преобразовать картинку в 32 бит флоат.
2. Увеличить Gain в N раз.
3. Сделать нужные манипуляции.
4. Уменьшить Gain в N раз.
Важно, чтобы эта суперпрограмма (кстати, как называется? Не Люстра ли?) правильно работала с флоатом.
 

zzorro

Пользователь сайта
Рейтинг
2
#6
к сожалению gain это всёже не контрастнось, не делает темное черным, а светлое белым. Я решил забить на эту тему и копать в других направлениях. Программа называется Diamand.
 

Григорий Чаленко

Куратор форума
Команда форума
Рейтинг
948
#7
Gain - это увеличение контраста за счет смещения уровня белого (черное остается неизменным, белое светлеет или темнеет).
С точки зрения математики, это умножение цвета на некоторое число.

Если нужно менять и уровень черного, можно дополнительно уменьшить, а потом увеличить Brightness (вычесть, добавить число к значению цвета)

Для того, чтоб инвертировать увеличение контраста таким образом. нужно выполнить операции в обратном порядке: сначала вычесть Brightness, потом, в отдельном туле, разделить на Gain
InvertedBrightness=-Brightness
InvertedGain=1/Gain

Либо воспользоваться параметром Contrast.
Формула для Contrast: NewColor=Color+(Color-0.5)*Contrast
InvertedContrast=-Contrast/(1+Contrast)

Фактически, параметр Contrast - менее контролируемый вариант сочетания Gain и Brightness
 
Сверху