Moh*_*dra 2 image-processing openexr
我正在尝试使用这个数据集在 Python 中进行曝光测量(融合)。数据集中的每个图像都有一个可以下载的OpenEXR文件(我对此文件格式没有太多经验)。
我想从具有不同曝光度的 OpenEXR 文件中提取不同的样本(jpg 或 png)。
我设法在Darktable中做到了这一点:
问题:我有 100 张图像,我想自动化这个过程。关于如何做到这一点有任何想法吗?
先感谢您
由于 EV(“曝光值”)的每个增量对应于曝光加倍,并且EXR文件处于线性光(非伽马编码)中,因此您可能希望可以将文件中的像素值加倍EXR以添加 1EV 并将其减半做-1EV...
所以,我Luxo从这里下载了 EXR 文件。然后我进入 Photoshop 并单击:
Image -> Mode -> 8-bits/channel
Run Code Online (Sandbox Code Playgroud)
并选择Method=Exposure and Gamma并设置exposure=+1并将结果文件保存为名称中JPEG包含的a 。+1我对 EV-3、EV-2、EV+0、EV+1、EV+2、EV+3 重复了这一点。
然后,我使用ImageMagick在终端中使用如下命令查看生成的文件,以检查组合 RGB 图像的平均值:
magick identify -verbose image-EV+2.jpg
Run Code Online (Sandbox Code Playgroud)
然后我开始生成相同的平均值,并发现以下方法有效:
# 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
Run Code Online (Sandbox Code Playgroud)
等等...
因此,我编写了一个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"
Run Code Online (Sandbox Code Playgroud)
然后,只需一次,使其可执行:
chmod +x $HOME/adjust.sh
Run Code Online (Sandbox Code Playgroud)
然后你像这样运行它以将 +3EV 添加到SomeImage.exr:
~/adjust.sh SomeImage.exr 3
Run Code Online (Sandbox Code Playgroud)
样本输出
Applying EV 3 to SomeImage.exr, saving as SomeImageEV3.jpg
Run Code Online (Sandbox Code Playgroud)
或者,如果将此脚本另存为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"
Run Code Online (Sandbox Code Playgroud)
在对其进行终生分析之前,请仔细检查这是否适合您......
关键词:图像处理、HDR、高动态范围、EXR、EV、曝光值、光圈值、光圈、光圈、曝光、增加、减少、色调图、ImageMagick。