Sharpening Workflows

I’m starting this thread to document some workflows and ideas around sharpening.
In particular, what the various options may be, why/where they may be better suited, and how they fit into a workflow.

For instance, looking at what sharpening methods there are (in general) available in various f/oss projects:

  • Unsharp Mask (who doesn’t implement this?)
  • Wavelet Sharpen (GIMP, G’MIC, darktable)
  • Octave Sharpen
  • R-L Deconvolution (G’MIC & RawTherapee)
  • “Smart” Sharpen (basically masking sharpening to edges to avoid sharpening noise in flat-color areas)

Also to note, there’s an old wiki page at meetthegimp.org that looked at this as well:

http://wiki.meetthegimp.org/doku.php?id=sharpening

I’m making this post a wiki entry, so feel free to edit if you have permissions, or feel free to reply to this like normal.

From this google+ post of mine there was some great feedback and descriptions (which I’m documenting here for posterity):

Ray Trace
My basic workflow is this:

Film Simuilation (Polaroid 690 Warm --@ 37% mainly)
Local Contrast Enhancement
Sharpen (Deblur)
Fake Vignette centred on main focus of picture (using a new white layer set to ‘Overlay’ at about 33%)
Possibly very faint use of G_Mic’s vignette
Final Levels Check (usually only main and red channel (I have a real hatred of cold ‘blue-ish’ pics)

And,

Ian Hex
Very quick overview of my output sharpening workflow:

  1. Duplicate image
  2. Go to G’MIC > Testing > Garagecoder > Unquantize JPEG (reduce edge preservation to 0)
  3. To sharpen for a final image size of 900px wide, Image Scale down to 900*1.6667 using Sinc (Lanczos 3) interpolation
  4. Finally, Scale Image down to 900px wide using the same interrogator.
    (5.) Small amount of Unsharp Mask if still needed.

I should add my own workflow description here as well.

If I’m working on a portrait or an image where I’ve already done a wavelet decompose for any reason, I’ll usually end up using the lowest (finest) wavelet scales duplicated over my (almost) complete image. I’ll use a combination of opacity on the layers as well as masks to adjust the results to taste.

Often, I’ll use the finest detail scale at 100% opacity, and the next largest scale at a reduced opacity (~30-60%) as well as possibly masked for edges as needed (I will mask this and all higher scales off of skin for instance).

If I need to increase the strength of a wavelet scale, I’ll sometimes duplicate it, then adjust opacity as needed.

I’d love to also hear from @Morgan_Hardwood, @rickscheibner, @designbybeck, or @paynekj! :slight_smile:

How and when I sharpen depends on the final image’s intended viewing medium, the size of the medium, and the viewer’s distance from it.

When

There are basically three places in a workflow when sharpening can be performed, let’s call them input, artistic, and output.
One can apply sharpening at the input stage where the purpose of it would be to correct your capture device’s imperfections (e.g. soft lens, soft sensor), somewhere in the middle of the workflow for artistic effect (e.g. using wavelet level contrast), and at the end of the workflow (output)where the purpose is to make the final image look great on its medium.

It is very important to perform sharpening as the final step in the workflow. One can optionally perform it at the input and artistic steps earlier in the workflow, but it must still be done as the final step. The reason is simple: generally when developing raws we want to get a great looking photo without knowing for sure where and how it will be shown. Often it will be shown in several places. I develop my raws at their full size, if the image has no noise I may apply input sharpening, if I use noise reduction then no input sharpening but maybe with artistic sharpening (wavelets for nice contrast). Once they’re all developed and saved to TIFF or JPEG, then I would do a second pass. This second pass is specifically for an intended viewing medium, e.g. a print, or being used as a digital wallpaper, or being put on a website whose final image dimensions we know (e.g. it used to be max 720px wide on facebook, but now they improved that by allowing large sizes, though fear not for their compression and chroma subsampling will still destroy your photos).

For print

Print doesn’t care so much about pixel-perfect sharpness. Even if you knew the exact print size, having razor-sharp edges probably would make little difference since prints are usually viewed at some distance. More important here is local contrast to give your image punch on the low dynamic range medium like paper or canvas. For this purpose I would use something like unsharp-masking with a large radius, or wavelets.

For screen

Here, where you know the viewing resolution, applying a little final sharpening makes a world of difference! My preferred final sharpening method for screen is (in RawTherapee) RL Deconvolution with a very small radius (0.5), high amount (50-100), no damping, and maximum iterations (100). Similar values should do in the RL Deconvolution implementation in other software, just the name of the sliders might differ. The effect is that edges are razor-sharp and when people view your photo at its 100% size they think you have a Gillette Mach III cutthroat lens from hell. If I happen to be in GIMP at the time instead of RawTherapee, then I will use G’MIC > Details > Sharpen [inverse diffusion], default values, save to a new layer and adjust its opacity between 50-100, salt to taste.

Further reading:
http://rawpedia.rawtherapee.com/Sharpening

http://www.cambridgeincolour.com/tutorials/image-sharpening.htm
http://www.cambridgeincolour.com/tutorials/sharpness.htm
http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm

5 Likes

I don’t really have much to say on the subject.

For web (which is all I ever do) I step-scale using a GIMP script I wrote as it seems that I need less aggressive sharpening afterwards, then use the old refocus plug-in if needed.

Kevin

The only sharpening workflow that I have learned I learned from Rolf’s wonderful website ‘Meet the Gimp’.

http://blog.meetthegimp.org/episode-164-high-pass-sharpening/

  1. Duplicate the layer twice
  2. Invert the colours
  3. Set layer mode to Grain Merge
  4. Blurring
  5. Merge the top layer down and set the layer mode to Overlay
  6. Adjusting the effect with the opacity of the sharpening layer

In step 4, when assessing his image, he chose to set the blur fairly high.

Although I’ve used this workflow at the very least hundred times I’ve never understood what to take into consideration with each image when choosing an appropriate blur strength. Also, when would this technique and the others that @patdavid mentioned?

Can anyone help?

Many thanks,

Rich

1 Like

My normal workflow is just an extension of the high pass sharpening that Rolf describes. Instead of creating a separate high pass, I normally use the finest detail scales from my wavelet decomposition. Otherwise it’s the same steps (identical if I choose to only use a single high frequency scale).

The blur strength in this case is the way you control how high of a frequency you are separating from your image. A smaller blur will isolate only the finest of details. As the blur radius gets larger, more and more details will be included in the pass.

1 Like

Thanks Pat, With your help I think I understand it better now.