gpt4 book ai didi

image-processing - 将 OpenEXR 分割成不同的曝光图像

转载 作者:行者123 更新时间:2023-12-02 03:06:57 26 4
gpt4 key购买 nike

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

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

我成功地在 Darktable 中做到了这一点:

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

问题:我有 100 张图像,我想自动化这个过程。知道如何做到这一点吗?

提前谢谢

最佳答案

由于 EV 的每个增量(“曝光值”)对应于曝光量加倍,并且 EXR 文件采用线性光(不是 Gamma 编码),因此您可以期望您可以将 EXR 文件中的像素值加倍以添加 1EV,并将它们减半以执行 -1EV...

所以,我从 here 下载了 Luxo EXR 文件。 。然后我进入 Photoshop 并单击:

Image -> Mode -> 8-bits/channel

并选择方法 = 曝光和 Gamma 并设置exposure=+1并将生成的文件保存为JPEG 名称中带有 +1 。我对 EV-3、EV-2、EV+0、EV+1、EV+2、EV+3 重复了这一点。

enter image description here

然后,我使用 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"

enter image description here

在对其进行一生的分析之前,请仔细检查它是否适合您......

关键字:图像处理、HDR、高动态范围、EXR、EV、曝光值、光圈值、光圈、光圈、曝光、增加、减少、色调图、ImageMagick。

关于image-processing - 将 OpenEXR 分割成不同的曝光图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58740992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com