Hello.
I just wanted to share how I managed to salvage a raw photo. I don’t know if I just discovered hot water
By the way, the original photo looked like this:
Very low dynamic range, and heavy blue haze. The mountains were several km away.
After a long and unsuccesful wrestling with Darktable, due to my scarce knowledge of it, I was about to surrender, when I had the idea of giving the file a run through Luminance HDR. I choose the Ferradans operator, and here is the result (after minor tweakings):
This means that the data was there in the raw, and I wasn’t able to extract it in a meaningful way. Hence my question: what is a general approach to this kind of washed out blue photos? I think I’m missing some color theory principles to be able to understand the problem and therefore its solution.
The Farradans method, assuming it is TSTM as documented in https://www.ima.umn.edu/sites/default/files/2253.pdf, includes halo-less local contrast enhancement. It seems to be an effective method, but the maths is beyond my tiny brain.
We can get a similar result from simple tools. First, adjust colours with curves in Gimp or your favourite editor:
Then sharpen with an unsharp mask, a technique as old as photography:
@jdc I tried Retinex in RawTherapee. Nice things happen to the lightness, but the colors are washed out. Do you know how to preserve the colors minus the blue haze?
My try with darktable. A little of this, a little of that. Balancing the foreground and distance colors through the haze is a challenge. DSC00989.ARW.xmp (20.1 KB)
Have you tried the branch “waveletnew” ? Inside, I made a modification which is inspired by the one realized for “Retinex in wavelet”, but which concerns Retinex (just after demoisaicing).
There is a slider for chroma, which acts on the “a” and “b” components of L * a * b *.
@Dario Thanks for sharing this problem. People sure are raring to tackle it. It is starting to look like a PlayRaw! Maybe include a license to your raw… Here was my result using dcraw and gmic. I will try to explain it in general terms so that you may apply it any way you would like.
Demosaicing: In this step, I used the camera’s WB (I decided not to color correct here but you could!) with clipping and exported a linear gamma sRGB image for more latitude in later steps. (Edit: the output file should be 16 bit or more.) As a bonus, I used @LuisSanz’s RCD method.
Processing: To remove the color cast, I subtracted (a fraction of) the average color from the image. I haven’t done it this way before but it sort of worked out. Next, I applied a curve to compress the highlights and consequently lift the shadows and mid-tones. This is the curve I used:
After that, guided smoothing in preparation for local contrast adjustments followed by an increase in chroma (LCH), since lifted dark areas have less chroma.
Salvaged! There is still some haze and color cast. My method doesn’t remove all of it but I think that leaving some behind makes the image more realistic – maybe. Sorry, I didn’t resize the image for the post; I already spent too much time on this .
Although you can use the haze removal module of the darktable, I usually find out that I prefer to remove haze manually using tone curves with drawn masks. The following photo has been developed by such a technique.
Hi. I’m trying to use your xmp but Darktable tells me about wrong version of bilat filter (?), and the image results very dark. I’m running Darktable 2.2.5 on Arch Linux. Besides, I have no haze removal moduel, maybe it’s found in the latest git version?