Processing HDR fused image



I realize this is a darktable topic, but on the subject of haze I’ve added a G’MIC filter to make the brightness even across an image. That can make it easier to work with contrast afterwards - it’s like a partial de-haze. If you have G’MIC it’s under testing -> garagecoder -> “normalize brightness”.

The premise is simple: apply a local area tone curve to push the local average towards the image average (or a desired average). No doubt there are many better algorithms out there but at least it’s reasonably fast.

The above is from your last jpg posted, default settings.


@garagecoder, what do you think about your “Tone enhance” filter to dehaze? I think it is also a nice dehaze filter.


Yes, I’ve noticed “tone enhance” can be used that way - although probably more for the detail/sharpening part. Getting the brightness correct with it can be tricky and I suppose not a lot different from manual tone curves. It makes use of bilateral filter which can be a bit slow, not that I think it’s a bad filter :slight_smile:

One advantage of the above is it could be easily implemented in other image software that has a guassian type blur - not that I expect it to be any better than what’s already available! It’s just an experiment made in a few minutes before work :wink:


@garagecoder, your new filter is very useful as it is. Thank you. This filter can also be used for color correction with rgb, lrgb, cmy and cmyk. (as with retinex-filter) I tested this. Sometimes with great results. In some cases it deals even with colored haze. It depends on the right color space, also a bigger area is sometimes needed. But I understand you didn’t ad this functionality, because it is not straightforward and gives, with the wrong color space, very bad results. But maybe it is an idea to play with for other (new) filters? I see you did already something with balancing in your other nice new filter “Auto balance”. Also thanks for this filter. :slight_smile:


The calculation is:

X represents the set of input image pixels, N the new output
L is the Lehmer mean of the image (p is used to adjust brightness, default 0 i.e. harmonic mean)
G is a gaussian kernel centred around each pixel
A is the resulting per pixel map used to apply the tone curve (i.e. the final step N)

The input range is assumed to be 0 < i < 1 because of division by zero (I just add a small value) and if normalizing at the end it doesn’t matter too much.

Not the best explanation I know but perhaps it’s of use to somebody!

Edit: yikes, forgot to actually use the h term… updated

(Kane Davis) #26

Hi there, these are my tried and true steps for HDR Darktable, after combining the CR2 RAW images into DNG.
I am primarily processing Real Estate images, and have found HDR to be too cartoony, until I developed these steps IN THIS SPECIFIC ORDER. Now they pop.

Kane’s Darktable HDR Workflow

  • First go to original, start there to remove all automatic modules
  • Apply Chromatic Aberrations
  • Set White Balance (using spot) if you can, otherwise do later
  • Set Base Curve to Canon EOS preset or Canon EOS like alternative (thats specific to me)
  • Raise Exposure, likely lower darkness. Will need to readjust later
  • Global Tonemap – play with sliders to lighten, raise detail to 90-100%
    • May add another instance and use uniform softlight blend, reduce opacity for color
  • Local Contrast – play with detail slider and contrast (also try opaque softlight)
  • Tone Curve – raise middle a tad, reduce clipping on right
    • also separate instance – increase green (drop “a”), increase blue sky (drop “b”)
  • Shadows and Highlights, mostly default, check radius, compression, check gaussian vs. bilateral
  • Highpass and Lowpass, I have presets, usually uniform softlight, adjust sliders, opacity if needed
    • Lowpass saturation is set to zero
  • Now fine tune, etc., crop, velvia, graduated density for sky, etc.


The order really shouldn’t matter. That being said, do you have some example? I am always curious to see the actual results. :slight_smile: