How would you process this shot (raw file) with lots of haze?

Discussion in 'Image Processing' started by ibd, Nov 13, 2017 at 6:09 AM.

  1. ibd

    ibd Mu-43 Regular

    64
    Jun 5, 2016
    Last year I took my Konica 135mm lens for a spin. It being a long lens, I tried to shoot some landscape with it. Looking at the resulting photos, I can see a lot of atmospheric haze as everything is very far away.

    How would you process this photo?

    The things that seem most important to address to me:
    - Haze results in loss of contrast. This is not so hard to fix.
    - The colors are less saturated, and there is a blue shift. I wasn't able to fix this properly.

    In the end, I just cropped out a part of the image because it would look overly dark when applying the contrast corrections. And I went with B/W because I don't need to correct colors then.
    But, I'm not very satisfied with the result! Can you do better?

    I processed the photo with Lightroom shortly after taking it, but now I would use darktable to process it. Anyway I'm sure that similar process steps could be found for any software.

    I'm attaching the raw file, a .jpg straight as it comes from darktable, and my attempt at processing.
    .RW2 file: Dropbox - P1020436.RW2

    P1020436.
    P1020436-6.
     
    • Like Like x 1
  2. fader

    fader Mu-43 Veteran

    473
    Aug 20, 2016
    Brest, France
    Isaac
    I think your b&w is already an impressive recovery. with that much haze there's a lot of detail that's just gone. you can get some of the gamma out and sharpen up what's there, but in color it's probably never going to look quite right.

    I tried DCP dehaze in G'MIC plugins under gimp, and even on a 32bit tif (~192 mb) the results weren't at all great. this would be a great challenge photo :)
     
    • Like Like x 1
  3. hazwing

    hazwing Mu-43 All-Pro

    Nov 25, 2012
    Australia
    A really rough and nasty edit, particularly with the brushes. Going colour was really difficult, couldn't push things as much. Was able to push more drastically in LR (maybe a bit too far) with B&W.

    Your original crop is probably better, the town doesn't add much. I haven't cropped it, because I thought you might want to see it as a whole.

    All editted in LR, brushes were useful for slecting the hazy area that needed pushing more. Happy to share what I did, if you like it.

    P1020436-2. P1020436.
     
    • Like Like x 2
    • Agree Agree x 1
  4. Opened the RAW file in DXO Optics Pro, adjusted white balance (targeting the grey rock in the lower right corner). Rather a heavy dose of Clearview (at 85), and selective increase of the highlights using "selective tone". Noise reduction using the "prime" setting.

    Mountain.
     
    • Like Like x 1
  5. drd1135

    drd1135 Zen Snapshooter Subscribing Member

    Mar 17, 2011
    Southwest Virginia
    Steve
    Here's what happens with the auto-haze removal in PSE.
    P1020436.
     
    • Like Like x 1
  6. panamike

    panamike Mu-43 All-Pro Subscribing Member

    Jul 5, 2016
    Lincolnshire UK
    The color version beat me :026: so i opted for B/W, haze removal in photoshop elements then vivid landscape conversion.

    P1.
     
    • Like Like x 1
  7. stagor

    stagor Mu-43 Top Veteran

    692
    Aug 10, 2012
    Netherlands / N.Ireland
    Stan
    I had a go with On1 2018, with more time I could have made a better job of masking the nearest ridge, I used a quick luminosity mask, when I should have masked manually, but I wanted to see how much detail I could pull out of the distant mountains. A very difficult photo to work. P1020436 copy.
     
    • Like Like x 1
    • Wow Wow x 1
  8. stagor

    stagor Mu-43 Top Veteran

    692
    Aug 10, 2012
    Netherlands / N.Ireland
    Stan
    for anyone who is interested here is a video showing one way to remove haze manually, it is more or less what I did in the sample above. Although the video shows On1 2018 being used, this method could be used by most raw processors out there.
     
    Last edited: Nov 14, 2017 at 5:52 AM
    • Informative Informative x 1
  9. junkyardsparkle

    junkyardsparkle Mu-43 Top Veteran

    720
    Nov 17, 2016
    like, The Valley
    My approach is usually to acknowledge that the haze was part of the scene, and just bring out a little more contrast while trying to keep things natural looking. Started by adjusting white balance and contrast for the foreground part, then using quick'n'dirty gradient masks (could be better) with a few different modules in darktable for additional enhancement of the background. I generally prefer to use small amounts of a few different approaches rather than lean too hard on any one slider. Gory details are in the xml pasted into the spoiler box below (which can be pasted into a sidecar file and loaded by darktable).

    P1020436_01.

    Paste the following into a somerandomname.xml sidecar file, then create a duplicate of the image in darktable and apply, if you want to play with it as a starting point.
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
     <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
        xmlns:xmp="http://ns.adobe.com/xap/1.0/"
        xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
        xmlns:darktable="http://darktable.sf.net/"
       xmp:Rating="0"
       xmpMM:DerivedFrom="P1020436.RW2"
       darktable:xmp_version="2"
       darktable:raw_params="0"
       darktable:auto_presets_applied="1"
       darktable:history_end="11">
       <darktable:mask_id>
        <rdf:Seq>
         <rdf:li>1510592424</rdf:li>
         <rdf:li>1510592421</rdf:li>
         <rdf:li>1510592555</rdf:li>
         <rdf:li>1510592553</rdf:li>
         <rdf:li>1510593387</rdf:li>
         <rdf:li>1510593382</rdf:li>
        </rdf:Seq>
       </darktable:mask_id>
       <darktable:mask_type>
        <rdf:Seq>
         <rdf:li>4</rdf:li>
         <rdf:li>16</rdf:li>
         <rdf:li>4</rdf:li>
         <rdf:li>16</rdf:li>
         <rdf:li>4</rdf:li>
         <rdf:li>16</rdf:li>
        </rdf:Seq>
       </darktable:mask_type>
       <darktable:mask_name>
        <rdf:Seq>
         <rdf:li>grp levels</rdf:li>
         <rdf:li>gradient #1</rdf:li>
         <rdf:li>grp local contrast</rdf:li>
         <rdf:li>gradient #3</rdf:li>
         <rdf:li>grp monochrome</rdf:li>
         <rdf:li>gradient #5</rdf:li>
        </rdf:Seq>
       </darktable:mask_name>
       <darktable:mask_version>
        <rdf:Seq>
         <rdf:li>4</rdf:li>
         <rdf:li>4</rdf:li>
         <rdf:li>4</rdf:li>
         <rdf:li>4</rdf:li>
         <rdf:li>4</rdf:li>
         <rdf:li>4</rdf:li>
        </rdf:Seq>
       </darktable:mask_version>
       <darktable:mask>
        <rdf:Seq>
         <rdf:li>a5cf095aa8cf095a030000000000803f</rdf:li>
         <rdf:li>ddc8e03e5ea9c93ef38dc0c00bd7a33e00000000</rdf:li>
         <rdf:li>29d0095a2bd0095a030000000000803f</rdf:li>
         <rdf:li>6d43d43e79770e3ff3a7fcc00bd7a33e00000000</rdf:li>
         <rdf:li>66d3095a6bd3095a030000000000803f</rdf:li>
         <rdf:li>b334ea3e07fd223f8adbbfbf0bd7a33e00000000</rdf:li>
        </rdf:Seq>
       </darktable:mask>
       <darktable:mask_nb>
        <rdf:Seq>
         <rdf:li>1</rdf:li>
         <rdf:li>1</rdf:li>
         <rdf:li>1</rdf:li>
         <rdf:li>1</rdf:li>
         <rdf:li>1</rdf:li>
         <rdf:li>1</rdf:li>
        </rdf:Seq>
       </darktable:mask_nb>
       <darktable:mask_src>
        <rdf:Seq>
         <rdf:li>0000000000000000</rdf:li>
         <rdf:li>0000000000000000</rdf:li>
         <rdf:li>0000000000000000</rdf:li>
         <rdf:li>0000000000000000</rdf:li>
         <rdf:li>0000000000000000</rdf:li>
         <rdf:li>0000000000000000</rdf:li>
        </rdf:Seq>
       </darktable:mask_src>
       <darktable:history>
        <rdf:Seq>
         <rdf:li
          darktable:operation="flip"
          darktable:enabled="1"
          darktable:modversion="2"
          darktable:params="ffffffff"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="sharpen"
          darktable:enabled="1"
          darktable:modversion="1"
          darktable:params="000000400000003f0000003f"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="basecurve"
          darktable:enabled="1"
          darktable:modversion="4"
          darktable:params="gz09eJxjYICAy0tEbHtrT9oI7ftuuy9Ty27WlCC7jSYr7HZfk7Jf5uFlz8DQAMWjYCgBNiQ2E4Zsgz0AIrMQmg=="
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="colorin"
          darktable:enabled="1"
          darktable:modversion="4"
          darktable:params="gz10eJzjZqA/AAAFcAAM"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="levels"
          darktable:enabled="1"
          darktable:modversion="2"
          darktable:params="0000000000000000000048420000c84234c4e93ed41c2c3f5bb9673f"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz10eJxjZmBgEGAAgRNOIHLFec4oBoKgwR6CRxYfANmdGtg="/>
         <rdf:li
          darktable:operation="graduatednd"
          darktable:enabled="0"
          darktable:modversion="1"
          darktable:params="0000803f0000000000000000000048420000000000000000"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="exposure"
          darktable:enabled="1"
          darktable:modversion="5"
          darktable:params="00000000d054413cd1cccc3e00004842000080c0"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="bilat"
          darktable:enabled="1"
          darktable:modversion="1"
          darktable:params="00009041ffffcf412c87363f"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz10eJxjZmBgkGAAgRNOIFL7AmcUA0HQYA/BI4sPAFlMGmQ="/>
         <rdf:li
          darktable:operation="clipping"
          darktable:enabled="1"
          darktable:modversion="5"
          darktable:params="001f053f0000000000fda33d0000803ff6ab773f0000000000000000cdcc4c3ecdcc4c3ecdcc4c3fcdcc4c3ecdcc4c3fcdcc4c3fcdcc4c3ecdcc4c3f000000000000000000000000010000000200000003000000"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
         <rdf:li
          darktable:operation="monochrome"
          darktable:enabled="1"
          darktable:modversion="2"
          darktable:params="a804e742bb03ea420000004000000000"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz10eJxjZmBg4GIAgRNOIDL7MmcUA0HQYA/BI4sPAJNtGpk="/>
         <rdf:li
          darktable:operation="temperature"
          darktable:enabled="1"
          darktable:modversion="3"
          darktable:params="ef013a400000803ffd88b73f0000807f"
          darktable:multi_name=""
          darktable:multi_priority="0"
          darktable:blendop_version="7"
          darktable:blendop_params="gz12eJxjYGBgkGAAgRNODESDBnsIHll8ANNSGQM="/>
        </rdf:Seq>
       </darktable:history>
      </rdf:Description>
     </rdf:RDF>
    </x:xmpmeta>
    
     
    • Like Like x 2
  10. WhidbeyLVR

    WhidbeyLVR Mu-43 Top Veteran

    806
    Feb 14, 2014
    Whidbey Island
    Lyle
    Haze like this is a pain, for sure.

    What I do is divide the image into sections -- sky, mountain, foreground. I start by developing the raw into an image with better available dynamic range and some color correction:
    P1020436.

    Not terrible, but it can be better. Next, I work on each section in one or more layers for what it needs. Sky needs strong noise reduction, mountain needs more detail and dynamic range, and foreground needs to be brighter with less dynamic range and less saturation:
    P1020436B.
    I used Affinity as the raw processor because I couldn't open it in my DxO 10. I used Nik Dfine for the noise reduction, and Gimp for the rest. But you can do similar things in other tools, as well.
     
    • Like Like x 3
    • Agree Agree x 1
    • Winner Winner x 1
    • Wow Wow x 1
  11. Machi

    Machi Mu-43 Veteran

    324
    May 23, 2015
    Interesting challenge!
    I think that your B&W version looks pretty good!
    Here is my version processed by RawTherapee (+ some tweaking in PSP and FIJI).

    mountains.
     
    • Like Like x 2
  12. Hendrik

    Hendrik Mu-43 Veteran Subscribing Member

    460
    Feb 27, 2015
    Wayland MA
    Three smart objects in Photoshop. I divided the image into near ridge, middle ridge and far ridge/sky. The near ridge received no tweaks. The far ridge/sky layer was processed to add clarity and depth to the sky and bring the far ridge a bit closer, but still in the distance. There were no large moves, just a collection of mild differences. This layer was then copied and the copy served as the basis for the further small tweaks on the middle ridge that served to increase the clarity of the ridge face and, again, move it slightly further forward toward the viewer. Once the layers were blended a very gentle curve was added for contrast and to move the whole scene toward the viewer. It is a summer scene, after all, and in summer there will be haze.

    P1020436-1.
     
    • Like Like x 3
  13. stagor

    stagor Mu-43 Top Veteran

    692
    Aug 10, 2012
    Netherlands / N.Ireland
    Stan
    Does anyone else have this feeling? just after processing a photo you think to yourself, that's not a bad effort, and proceed to upload here. Then the following day you go back and have another look, and think what an absolutely terrible effort, I'm having that feeling right now.
     
    • Agree Agree x 1
  14. Stanga

    Stanga Mu-43 Veteran

    332
    Oct 16, 2016
    The problem with making corrections to pictures like this is that the correction needs to be applied from the front to the back, because the haze will be thicker in the distance than it is in the foreground. I can't get my head round how that can be done easily. I personally think this picture deserves to be put in the picture editing challenge page.
     
  15. magIBIS

    magIBIS Mu-43 Regular Subscribing Member

    84
    Jun 8, 2016
    Central Europe
    don't be too cruel to yourself.
    + you did try and took the challenge
    + you used a well chosen technique
    + you brought it to the end and posted
    + you even explained how and where to learn it
    + you cared to come back and be honest with yourself comparing the other results

    though I admit I think your edit went too far for a natural approach, I learned the technique and think it will be a good use for a more artistic edit on that particular picture. Thank you for that

    and yes - I know that feeling and I passed on this challenge from the start, just watching to learn
     
    • Agree Agree x 1
    • Appreciate Appreciate x 1
  16. drd1135

    drd1135 Zen Snapshooter Subscribing Member

    Mar 17, 2011
    Southwest Virginia
    Steve
    OK, I had a little more time and just brightened it a bit, darkened the highlights, and increased the midtone contrast.
    P1020436.
     
    • Like Like x 1
  17. bahamot

    bahamot Mu-43 Veteran Subscribing Member

    405
    Dec 4, 2015
    Here's my attempt with PhotoLab
    P1020436_DxO.
     
    • Like Like x 1
  18. ibd

    ibd Mu-43 Regular

    64
    Jun 5, 2016
    Wow, thank you all for the overwhelming amount of feedback! While I didn't intend it as a challenge kind of thread, it is amazing to see that people are trying their hands on it and also commenting each other's work!

    I quite like @WhidbeyLVR@WhidbeyLVR 's attempt for the way the contrast is brought out from the different "layers", while maintaining natural-looking balance. Layers, or brushes, seem to be a key ingredient for selectively dealing with the different processing at different distances to the camera (ridges, sky).

    @stagor@stagor I actually quite like your version for the color of the middle ridge of trees. You were able to get rid of the cyan-ish color cast very well!

    For a mask for localized adjustments, it would seem that a depth map of the scene would be useful. A few algorithms like DCP dehaze that @fader@fader mentioned should produce such a depth map. I wonder if that algorithm or similar algorithms can provide their depth estimate for other adjustments?
     
    • Like Like x 1
  19. fader

    fader Mu-43 Veteran

    473
    Aug 20, 2016
    Brest, France
    Isaac
    ... I'm filled with regret most the time after clicking "Post Reply" :drinks::eek-31: :rofl:
     
    • Funny Funny x 1
  20. fader

    fader Mu-43 Veteran

    473
    Aug 20, 2016
    Brest, France
    Isaac
    I saw the depth map checkbox but didn't take the time to look up documentation about how it works. a few bits out of my depth there. I know I've used it before on a couple shots of statues with the sky filling in all round, and it did a marvelous job. Long distance and actual haze like this I haven't tried ... pretty clean air here on the coast!