B&W film scan processing

This post is somewhat of an update to Scanning B&W negatives with Vuescan. For color negatives, see the companion article Color film scan processing.

I no longer scan with my Nikon Coolscan V. I now use a Sony A7rII on a copy stand to make ‘camera’ scans.

For processing the resulting photos, I use Adobe Camera Raw (ACR) and Photoshop (PS). My PS actions are available here.1

Step 1 - ACR

Bring your image into ACR. White balance on the film base. While this is probably not necessary for B&W film, it doesn’t hurt.

image in ACR

White balanced on the selection on the right of the image.

I do enable optics corrections in ACR: distortion and vignetting. I found this gives better scans, particularly for color negatives.

You can invert the image in ACR as well using the curves tool. From my experimentation, it makes no difference if you do it in ACR or PS. I do it in ACR as I can then export a downsized version of every image with no other corrections as jpegs for use in Photo Mechanic or other photo browsers.

Inverting with curves

Inverting with curves.

Lastly, make sure the ‘Adobe Monochrome’ profile is selected. This will make your image a true grayscale image, which makes file sizes easier and guarantees no adjustments will give the image a tint.

Create a custom camera profile
Adobe Monochrome profile

I personally make a Camera Profile in ACR with the ‘Adobe Monochrome’ profile selected and the curves inversion saved so I can just set this new Camera Profile for all my images. To access the profile creation dialog, Option-click on the three dots icon at the right side of the ACR interface (or search for ‘adobe camera raw create a custom profile’).

Settings with custom profile

With the custom profile selected, the curves tool is no longer inverted.

Step 2 - PS - 1st pass

Now it’s time for actions. Run the ‘Invert’ action if inversion wasn’t performed in ACR. Then run the ‘Basic contrast adjust’ action.

List of Photoshop actions

Before I explain what this action does, I should say that PS work on grayscale images is very flexible - there are many ways to do the same thing. Sometimes I do adjustments that could be done in one step in multiple steps because it is easier to conceptualize what I am doing. That being said, you can do 90% of needed adjustments in a single curves layer if you felt like it.

There are three layers that the ‘Basic contrast adjust’ action makes:

Layers created by the Basic contrast adjust action
  1. ‘Levels - Basic contrast’: This levels adjustment is just a midpoint change to get the image contrast better for the following steps. I don’t think there is anything magic here, it just makes the following step easier. Nominally, I am changing the gamma of the image to 1.45. Is this the right value because CI value of negatives are in the 0.5–0.7 range and 1.45 is the reciprocal? I don’t know.
  2. ‘Curves - contrast tweak’: This is an S-shaped curve to boost midtone contrast and provide some compression in the highlights and shadows. I like it. If you don’t, disable it. Better yet, when this layer is selected, you can hit the number keys (1 through 0) to adjust the layer opacity from 10% to 100%, varying the overall contrast. Some images require more detailed adjustments, but for the type of images I take and want, this really works most of the time.
  3. ‘Levels - total range’: This layer auto sets the total range of the image to the darkest and lightest pixels. Adjust the sliders on the levels panel to taste. I often move the midpoint a little bit, or sometimes the black point slider.

The ‘Levels - total range’ layer contains a layer mask (the thumbnail with the red X through it in the layer palette) that is set up for landscape images with film borders. You don’t want the film border affecting your levels calculation. The action creates the mask, runs the calculation and then disables the mask. If you want to rerun an auto calculation, Shift-click the X’d-out mask to re-enable it, run Auto (Option-clicking Auto brings up the options dialog window), then Shift-click the mask to disable it again.

NOTE: If you are working with images with no borders, you might want to remove the mask making steps completely (the ‘Play action “90% mask…”’ in the ‘Basic contrast adjust’ action). If you are working on images with large borders, non-35mm formats, or anything where this mask is the wrong shape, run ‘Basic contrast adjust - borders’ with appropriate modifications. ‘Basic contrast adjust - borders’ should properly recognize landscape and portrait orientation and provide a large enough border mask for most purposes.

It should be noted that with some images, particularly very overexposed or underexposed images, sometimes I go to the ‘Levels - Basic contrast’ layer and adjust the midpoint slider from the 1.45 value; it looks more natural that way.

Next up is the ‘Dust Bust’ action. This makes a ‘Dust Bust’ layer right above the background layer and activates the healing brush. Change the size of the brush with the ‘{’ and ‘}’ keys, zoom into 100% (Command-Option-0 on macOS), and brush out your dust. Sometimes you might want to go over a spot twice if the healing brush result is a little funky looking. When you are done, go back to full view (Command-0).

Dust Bust layer

You want to do the dust spotting before any fancy layers with luminosity masks or anything. The reason is the luminosity mask will contain the dust if its not spotted out, and when you then spot it out afterwards, the tonal values will be different for the dust than the surrounding areas.

Step 3 - PS - 2nd pass

Now you have a basic image. This is the equivalent of a test print in my mind. I’m not a master printer (nor a master photographer), so most of the time for my snapshots, I’m done.

If your image needs more attention, I use a few more generic actions. ‘Exposure hi/lo’ and ‘Luminosity layers’ do similar things in different manners. Both create a highlight and shadow layer, with a luminosity mask for the highlight layer, and an inverse luminosity mask for the shadow layer. The ‘Exposure hi/lo’ action creates Exposure layers. I find it is useful to go in and adjust the ‘Gamma Correction’ of those two Exposure layers to address highlights or shadows in a global fashion. The ‘Luminosity layers’ creates two curves layers (highlights and shadows) with appropriate curves to boost the highlights or shadows respectively. You can use the same number key trick on all of these layers to adjust the amount up or down (1–0 keys to set the amount to 10–100%).

And who could leave out dodging and burning? The ‘Dodge/Burn’ action creates a layer on the very top where you can use the Dodge and Burn tools to… dodge and burn the image (Shift-O to toggle between Dodge, Burn, and Sponge tools). There are other good ways to accomplish similar things, like painting on a layer mask of an Exposure adjustment layer set to +/- 0.5–2 stops. Really at this point, you can get pretty targeted with your adjustments and it gets ‘personal’. This is just a starting point.

Final image

That’s basically it! I do have some helper actions to do things like save out a full sized jpg file for sharing online and as a ‘print’. Another useful action is the one that downsizes the image (50% in my case) and saves as a TIFF file with all layers included. If I ever want to re-edit the image, I can open up the RAW file from ACR and the TIFF file, and copy over all of the adjustment layers. If I do this, I would have to recreate the dust spotting layer as it the wrong size (probably some way to upscale and use that too). I do this as once I am done with an image, I usually don’t need the full size work file–the jpeg is enough. And I don’t particularly want the GIANT files that a full-sized TIFF file would be (130+ MB). And it’s even worse with color images! Of course, if I was working on my masterpiece, I’d probably save the full PS file, but let’s be honest about the quality of my pictures.

Good luck and let me know if you run into any issues.

  1. These are not the actual actions I use, but ‘cleaned up’ versions. I do not use PS or make actions for a living, so often they are a bit disorganized. If these actions are useful, great! If not, I can attempt to help you out but can’t promise anything. ↩︎