Jeff O'Keeffe

Post-Processing for Scanned Film

This article is still a work in progress! Check back for edits and new additions.


To be clear, I don’t claim to be an expert on all matters discussed in the following article. The workflow discussed here is not the end-all technique for post-processing film scans, just my preferred methods which have changed and evolved over the years. If you have any suggestions of what I should include in later edits, or insights into the workflow, please feel free to shoot me an email!

That being said, this workflow is meant to mitigate destructive moves made on images as you bring them closer to your vision, ensuring you never make a change which can not be undone or causes you to reprocess images after making mistakes or in the event of an unforeseen crash. Today I will be working on re-processing my image “Vermillion Crags” from my trip to Utah in May of 2018. You can follow the link here to explore the full blog post around this trip!

This is how the image looked right after inverting the scan using ColorPerfect.

1.Rough Global Corrections

Your rough global correction take place above your Base layer, to stay organized I like to make a “Globals” group for it all to live in.

Global Tone Correction

I start by creating a curves adjustment layer (renamed to Global Tone Curve), as well as a levels adjustment layer (renamed to Global Tone Levels).

Both of these layers are set to the “Luminosity” blending mode, which only effects the tonal values of the image – whereas the “Normal” blending modes will tend to shift color as you move the curve around.

I use Levels to set the black and white points desired, then use Curves to further fine tune.

Global Color Correction

Make a curves adjustment layer and set the blending mode to “Color”. This will only effect color in the image, and leave tonal adjustments to your specific curves/levels for that.

Using the separate Red/Green/Blue channels in the Curves properties, I rough in the color of the image.

2.“Pixel” Retouching

“Pixel” retouching is the most destructive aspect of this particular workflow. It includes anything that effects the pixel level of the image – spotting, cloning, etc. We can eliminate any chances of ruining our original images by either working on a copy image, or by simply working on a copy of our base image layer.

Dust/Scratch Removal

  • Duplicate your base layer, Rename to “Dust/Scratch Removal”
  • Filter>Noise>Dust and Scratches
  • Leave the threshold set to 0

  • Start with the radius at 0 and click up by 1 until a majority of the dust you wish to eliminate is gone

  • Start raising the threshold in the same manner, 1 at a time, until the grain begins to be reintroduced. Going too far will start to reintroduce dust or edges of the dust.
  • Once you are happy, hit OK. Know that this is not your end result, the image may look strange.

  • In the history palette, create a snapshot named “Dust/Scratches Removed”

  • Next to the history snapshot you’ve made, activate the history brush box.

  • Go back in history to the renaming of your layer, your image should now look how it did before.
  • Making sure you are on your “Dust/Scratch Removal” layer –

  • Use the history brush tool (Set to DARKEN blend mode for light dust, LIGHTEN blend mode for dark dust) to paint over dust.

This method retains natural film grain, tone, color, and holds texture and shape underneath the brush remarkably well. I’ve found it to give more natural looking results in comparison to using the clone stamp tool, or spot healing brush which directly replace the brushed area with another area of the image. However – In the event that I cannot remove certain dusts or scratches with this method, I will move on to using those tools.