Поскольку каждое приращение EV ( «Значение экспозиции» ) соответствует удвоению экспозиции, а файлы EXR
представлены в линейном свете (без гамма-кодирования), можно ожидать, что вы можете удвоитьзначения пикселей в файле EXR
для добавления 1EV и деления их пополам на -1EV ...
Итак, я скачал файл Luxo
EXR из здесь . Затем я вошел в Photoshop и нажал:
Image -> Mode -> 8-bits/channel
, выбрал Method
= Exposure and Gamma
, установил exposure=+1
и сохранил полученный файл как JPEG
с +1
в его имени. Я повторил это для EV-3, EV-2, EV + 0, EV + 1, EV + 2, EV + 3.
Iзатем посмотрел на полученные файлы с помощью ImageMagick , используя в терминале команды, подобные приведенным ниже, чтобы проверить среднее значение объединенного изображения RGB:
magick identify -verbose image-EV+2.jpg
Затем я приступил к получению тех же средних значений. значений и обнаружил, что работает следующее:
# To increase 1 EV
magick input.exr -evaluate multiply 2 result.jpg
# To increase 2 EV
magick input.exr -evaluate multiply 4 result.jpg
# To increase 3 EV
magick input.exr -evaluate multiply 8 result.jpg
И так далее ...
Итак, я написал скрипт bash
для этого следующим образом, который выможно сохранить в вашем каталоге HOME как adjust.sh
:
#!/bin/bash
# Default file, if none specified
file=${1:-/Users/mark/Desktop/LuxoDoubleChecker.exr}
# Default EV of +1, if none specified
EV=${2:-1}
# Strip extension
base="${file%.*}"
# Apply given EV to file and save with new name
new="${base}EV${EV}.jpg"
echo "Applying EV $EV to $file, saving as $new"
magick "$file" -evaluate multiply $(bc -l <<< "2^$EV") "$new"
Затем, просто необходимо один раз, сделать его исполняемым:
chmod +x $HOME/adjust.sh
И затем запустить его так, чтобы добавить + 3EVв SomeImage.exr
:
~/adjust.sh SomeImage.exr 3
Пример вывода
Applying EV 3 to SomeImage.exr, saving as SomeImageEV3.jpg
В качестве альтернативы, если вы сохраните этот скрипт как allEVs.sh
, он загрузитуказанное изображение только один раз и сгенерируйте все 7 экспозиций за один раз, не перечитывая входной файл EXR 7 раз:
#!/bin/bash
# Default file, if none specified
file=${1:-/Users/mark/Desktop/LuxoDoubleChecker.exr}
# Strip extension to get base without extension
base="${file%.*}"
magick "$file" \
\( +clone -evaluate multiply 0.125 -write "${base}EV-3.jpg" +delete \) \
\( +clone -evaluate multiply 0.25 -write "${base}EV-2.jpg" +delete \) \
\( +clone -evaluate multiply 0.5 -write "${base}EV-1.jpg" +delete \) \
\( +clone -evaluate multiply 1 -write "${base}EV-0.jpg" +delete \) \
\( +clone -evaluate multiply 2 -write "${base}EV+1.jpg" +delete \) \
\( +clone -evaluate multiply 4 -write "${base}EV+2.jpg" +delete \) \
-evaluate multiply 8 "${base}EV+3.jpg"
Пожалуйста, проверьте внимательночтоЭто работает правильно для вас, прежде чем основывать на нем анализ всей жизни ...
Ключевые слова : обработка изображений, HDR, высокий динамический диапазон, EXR, EV, значение экспозиции, f-stop, stop, остановки, экспозиция, увеличение, уменьшение, тональная карта, ImageMagick.