hdrmerge: exposure question

Hi,
When I merge three raws with the following parameters, hdrmerge seems to present EV values the wrong way.
CRW_3782.DNG
aperture: F/2.6
exposure: 1/265
ISO: 75
hdrmerge EV: 0

CRW_3783.DNG
aperture: F/2.6
exposure: 1/392
ISO:75
hdrmerge EV: +1.23
EV on shooting: -1

CRW_3784.DNG
aperture: F/2.6
exposure: 1/365
ISO: 400
hdrmerge EV: +2.66
EV on shooting: +1

In the screen below, hdrmerge uses the 0 EV pixels on the top of the fruits (pink), but they are overexposed. Shouldn’t it use the pixels from the -1 EV raw (blue)?

EDIT: The raws:
CRW_3782.DNG (17.8 MB)
CRW_3783.DNG (17.8 MB)
CRW_3784.DNG (17.8 MB)

Maybe it’s confused by using different ISO settings for the images (two have ISO 75, one has ISO 400)
Even if it’s not confused by this, I would not use different ISO settings for merging

I agree, I forgot about that when shooting.
Is there any workaround?

Would an option to specify the EV be useful?

They aren’t overexposed at all. You are missing a view transform.

What do you mean?

He is using a term specific to OCIO. There have been a few threads on this topic.

@gadolf what makes you think CRW_3783.DNG is +1.23 according to HDRMerge?

$ ./programs/hdrmerge-hombre-sbu-release/hdrmerge -vv -p full -b 16 -a ~/downloads/CRW_378*
Using LibRaw 0.18.11-Release
[  0%] Loading /home/morgan/downloads/CRW_3782.DNG
CRW_3782.DNG: 4036x3026 (4080x3048+20+12, by Canon PowerShot A3100 IS, 75ISO 1/265.463sec f2.6 EV:-11.2244
b4b4b4b4 RGBG, sat 4095, black 127, flip 0, wb: 1.475 0.897 1.913 0, cblack: 127 127 127 127
[ 25%] Loading /home/morgan/downloads/CRW_3783.DNG
CRW_3783.DNG: 4036x3026 (4080x3048+20+12, by Canon PowerShot A3100 IS, 75ISO 1/392.003sec f2.6 EV:-11.7868
b4b4b4b4 RGBG, sat 4095, black 127, flip 0, wb: 1.46 0.895 1.968 0, cblack: 127 127 127 127
[ 50%] Loading /home/morgan/downloads/CRW_3784.DNG
CRW_3784.DNG: 4036x3026 (4080x3048+20+12, by Canon PowerShot A3100 IS, 400ISO 1/364.697sec f2.6 EV:-9.26758
b4b4b4b4 RGBG, sat 4095, black 127, flip 0, wb: 1.483 0.885 1.962 0, cblack: 127 127 127 127

By hovering the mouse over the three colored squares at top.
The green one shows +2.66EV and the blue, +1.23EV.
EDIT: It’s strange, According to the information given by you, 3783 should be -0,5624, and 3784 1.95682, relative to 3782…
I’m on hdrmerge-git-20180609.glibc2.14-x86_64.AppImage

@gadolf those tooltips show no filenames, so what makes you think CRW_3783.DNG is +1.23?
By the way, I opened issue #148 to make the tooltips show filenames.

Actually I don’t have any concrete evidence, only a guess: since it’s the less exposed image according to hdrmerge, it should be the real less exposed image.

Making the tooltips show the filenames would be better, no doubt.

Also, having an option to override EV, like @afre suggested, would be useful, at least in this case. It would be something like LuminanceHDR does, I believe.

And it is. HDRMerge is working correctly.

@floessie kindly wrote a patch to show filenames in the tooltips:

Small gifts preserve friendships.

:+1: Thanks @floessie!

1 Like

Sorry but I really don’t understand these development cycles. I saw that the patch was merged to main. Does it mean that it will soon be available on the night releases page?
Regardless, thanks @floessie et al! It doesn’t help my fault in not fixing the ISO value, but helps troubleshooting.

The patch was committed to the master branch and will be part of the next release, whose release date is not yet planned. @Carmelo_DrRaw set up the machinery to generate nightly AppImages, so hopefully within 24 hours there will be a new nightly AppImage with this patch.

1 Like

@Morgan_Hardwood @gadolf the AppImage package is ready…

2 Likes

@Carmelo_DrRaw it fails to run in Sabayon:

 $ ./hdrmerge-git-20180619.glibc2.14-x86_64.AppImage 
DIR: /tmp/.mount_cxpnQI
GTK_PATH=/tmp/.mount_cxpnQI/usr/lib/gtk-2.0
GTK_IM_MODULE_FILE=/tmp/.mount_cxpnQI/usr/lib/gtk-2.0:/tmp/.mount_cxpnQI/usr/lib/gtk-2.0
PANGO_LIBDIR=/tmp/.mount_cxpnQI/usr/lib
/tmp/.mount_cxpnQI/AppRun: line 49: ldconfig: command not found
System stdc++ library: ""
strings: '': No such file
System stdc++ library version: ""
strings: '/tmp/.mount_cxpnQI/usr/optional/libstdc++/libstdc++.so.6': No such file
Bundled stdc++ library version: ""
Newest stdc++ library version: ""
Using system stdc++ library
GDK_PIXBUF_MODULEDIR: /tmp/.mount_cxpnQI/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders
GDK_PIXBUF_MODULE_FILE: /tmp/.mount_cxpnQI/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
cat: /tmp/.mount_cxpnQI/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache: No such file or directory
Input parameters: ""

Input File:
        linux-vdso.so.1 (0x00007f450baac000)
        libraw_r.so.18 => /tmp/.mount_cxpnQI/usr/lib/libraw_r.so.18 (0x00007f450b5a7000)
        libexiv2.so.12 => /tmp/.mount_cxpnQI/usr/lib/libexiv2.so.12 (0x00007f450b15c000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f450af43000)
        libalglib.so.3.8 => /tmp/.mount_cxpnQI/usr/lib/libalglib.so.3.8 (0x00007f450aaf9000)
        libQt5Widgets.so.5 => /tmp/.mount_cxpnQI/usr/lib/libQt5Widgets.so.5 (0x00007f450a4ae000)
        libQt5Gui.so.5 => /tmp/.mount_cxpnQI/usr/lib/libQt5Gui.so.5 (0x00007f4509f5d000)
        libQt5Core.so.5 => /tmp/.mount_cxpnQI/usr/lib/libQt5Core.so.5 (0x00007f4509a3d000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/libstdc++.so.6 (0x00007f450960d000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f45092b9000)
        libgomp.so.1 => /tmp/.mount_cxpnQI/usr/lib/libgomp.so.1 (0x00007f45090aa000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/libgcc_s.so.1 (0x00007f4508e93000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4508c72000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f450889d000)
        libjpeg.so.8 => /tmp/.mount_cxpnQI/usr/lib/libjpeg.so.8 (0x00007f4508648000)
        libjasper.so.1 => /tmp/.mount_cxpnQI/usr/lib/libjasper.so.1 (0x00007f45083f1000)
        liblcms2.so.2 => /tmp/.mount_cxpnQI/usr/lib/liblcms2.so.2 (0x00007f450819c000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f4507f6d000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f4507cee000)
        libpng12.so.0 => /tmp/.mount_cxpnQI/usr/lib/libpng12.so.0 (0x00007f4507ac8000)
        libicui18n.so.52 => /tmp/.mount_cxpnQI/usr/lib/libicui18n.so.52 (0x00007f45076c1000)
        libicuuc.so.52 => /tmp/.mount_cxpnQI/usr/lib/libicuuc.so.52 (0x00007f4507348000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f4507144000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f4506f3b000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f4506c09000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f450b889000)
        libxcb-dri3.so.0 => /tmp/.mount_cxpnQI/usr/lib/libxcb-dri3.so.0 (0x00007f4506a06000)
        libxcb-xfixes.so.0 => /tmp/.mount_cxpnQI/usr/lib/libxcb-xfixes.so.0 (0x00007f45067ff000)
        libxcb-present.so.0 => /tmp/.mount_cxpnQI/usr/lib/libxcb-present.so.0 (0x00007f45065fc000)
        libxcb-sync.so.1 => /tmp/.mount_cxpnQI/usr/lib/libxcb-sync.so.1 (0x00007f45063f6000)
        libxshmfence.so.1 => /tmp/.mount_cxpnQI/usr/lib/libxshmfence.so.1 (0x00007f45061f4000)
        libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007f4505fc2000)
        libXext.so.6 => /tmp/.mount_cxpnQI/usr/lib/libXext.so.6 (0x00007f4505db0000)
        libXdamage.so.1 => /tmp/.mount_cxpnQI/usr/lib/libXdamage.so.1 (0x00007f4505bad000)
        libXfixes.so.3 => /tmp/.mount_cxpnQI/usr/lib/libXfixes.so.3 (0x00007f45059a7000)
        libX11-xcb.so.1 => /tmp/.mount_cxpnQI/usr/lib/libX11-xcb.so.1 (0x00007f45057a5000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f450544e000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f450521d000)
        libxcb-glx.so.0 => /tmp/.mount_cxpnQI/usr/lib/libxcb-glx.so.0 (0x00007f4505006000)
        libxcb-dri2.so.0 => /tmp/.mount_cxpnQI/usr/lib/libxcb-dri2.so.0 (0x00007f4504e01000)
        libXxf86vm.so.1 => /tmp/.mount_cxpnQI/usr/lib/libXxf86vm.so.1 (0x00007f4504bfb000)
        libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f45049e7000)
        libicudata.so.52 => /tmp/.mount_cxpnQI/usr/lib/libicudata.so.52 (0x00007f450317a000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f4502f06000)
        libXau.so.6 => /tmp/.mount_cxpnQI/usr/lib/libXau.so.6 (0x00007f4502d02000)
        libXdmcp.so.6 => /tmp/.mount_cxpnQI/usr/lib/libXdmcp.so.6 (0x00007f4502afc000)

/hdrmerge.bin ""
bin/hdrmerge.bin: symbol lookup error: /usr/lib64/libGL.so.1: undefined symbol: xcb_dri3_get_supported_modifiers
$ equery belongs /usr/lib64/libGL.so.1
 * Searching for /usr/lib64/libGL.so.1 ...
media-libs/mesa-18.1.1-r1 (/usr/lib64/libGL.so.1 -> libGL.so.1.2.0)
media-libs/mesa-18.1.1-r1 (/usr/lib64/libGL.so.1.2.0)

HDRmerge_master_continuous-25-gb6e5913_release_64.zip

uploaded at
https://keybase.pub/gaaned92/LHDR64/

I don’t quite understand the logic behind it.
hdrmerge took 3783 as the 0 EV one.
However, 3782 was the camera’s 0 EV.

3783 is the darkest

CRW_3782.DNG: 75ISO 1/265.463sec f2.6
CRW_3783.DNG: 75ISO 1/392.003sec f2.6