【问题标题】:Splitting OpenEXR into different exposure images将 OpenEXR 拆分为不同的曝光图像
【发布时间】:2020-03-03 13:51:07
【问题描述】:

我正在尝试使用这个 dataset 在 Python 中执行 Exposure Meging (Fusion)。数据集中的每个图像都有一个可以下载的OpenEXR 文件(我对这种文件格式没有太多经验)。

我想从 OpenEXR 文件中提取不同曝光的不同样本(jpg 或 png)。

我在Darktable 中设法做到了:

  • 打开 OpenEXR 文件(图片)
  • 改变曝光度
  • 另存为 jpg
  • 重做每个曝光值(-3EV、-2EV、-1EV、0EV、1EV、2EV、3EV)。

问题:我有 100 张图像,我想自动化这个过程。关于如何做到这一点的任何想法?

提前谢谢你

【问题讨论】:

    标签: image-processing openexr


    【解决方案1】:

    由于 EV 的每个增量(“曝光值”)对应于加倍曝光,并且EXR 文件处于线性光(未经过伽马编码),您会期望可以加倍EXR 文件中的像素值添加 1EV 并将它们减半以执行 -1EV...

    所以,我从here 下载了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 重复了一遍。

    然后,我在终端中使用如下命令查看带有 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、停止、停止、曝光、增加、减少、色调图、ImageMagick。

    【讨论】:

    • 你对这个世界太好了......非常感谢......你是一个救生员......我只检查了 2 个转换,它们看起来不错,只有一个问题.这些来自 AhwahneeGreatLounge 的转换:imgur.com/a/5ceIJHv ...
    猜你喜欢
    • 2023-03-13
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2021-01-27
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    相关资源
    最近更新 更多