Monday, July 22, 2019

IR 720nm processing using LAB

A long post for the brave souls of the Infrared Photography Group ...

720nm infra-red (IR) photography sometimes gets a bad wrap. On the one hand, it gets accused of being colourless by those who are looking for false colour IR and, on the other hand, for not being sufficiently contrasty by those looking for black and white IR at the 850nm end.

720nm is often considered the standard infra-red filter - it lets through almost no radiation in the visible spectrum and is the lowest value filter that might be considered 'pure IR' (or, to be more accurate, Near Infra-Red or NIR). Filters at 590nm let in IR and some visible light (which is why it is usually thought of as more colourfull), while filters around 850nm are more aggressively IR, allowing only radiation from 850 (right up to around 1000+nm where most camera sensors stop recording) and gives contrasty black and white images. The 720nm filter, therefore, occupies a middle ground between colourful and contrasty while apparently excelling at neither.

But the 720nm filter can produce spectacular colour and deep, contrasty, black and white without going to the expense and inconvenience of carrying a range of filters for other purposes. The secret (if secret it is) is in the post-processing of the 720nm files - particularly in the use of the LAB colour space.

If, as a photographer, you believe that captures 'straight out of camera' (SOOC) are something to be sought after, or your post-processing is limited to Lightroom, then this approach will not be for you. But if, like me, you have struggled to get the results you want from 720nm IR captures, then you might want to give the LAB colour space a try.

About the LAB. 
LAB is a colour space, just like RGB or CMYK are colour spaces. They are each different ways of expressing the data that makes up an image.

RGB says, let's make three channels, one for red, one for green and one for blue. In the red channel, we will define how bright the red is for each area of the picture, and we will do the same for the green and blue channels. When we overlay the three channels we will get a coloured picture. RBG is like having three transparencies (red, green and blue) that you lay on top of one another to make a full-colour image.

CMYK is similar but is mainly used for printing. It defines the amount of Cyan, Magenta, Yellow and Black needed to make the image colours (rather like mixing paints). Your printer may well contain ink for each of these 'colours' which it adds to the paper to make the image. Commercial printers may well ask for print jobs to be defined in the CMYK colour space so that they print as intended.

LAB is somewhat different. Like RGB, it also contains three channels -  L, A and B.  The 'L' channel is for Lightness or brightness - it contains data detailing how light or dark an area of the picture should be. The 'A' channel contains data about the balance between magenta and green in each area (all magenta, all green or a mix of the two) and the 'B' channel about the balance between blue and yellow. The main advantage of LAB is that you can manipulate brightness quite separately from colour or colour separately from brightness - this is what makes it so valuable for IR processing.

Programs like Photoshop allow you to choose which colour space you want to work in. You simply ask Photoshop to convert the document into a different colour space. Affinity Photo, however, works differently; it allows you to use an alternative colour space for a specific adjustment which makes using LAB so much easier. For example, both the Levels and Curves adjustments in Affinity Photo, have drop-down boxes allowing the user to choose between making the adjustment in RGB, CMYK or LAB. Nevertheless, if you are a Photoshop user, you can still make use of this technique in Photoshop, you just need to convert the whole document to LAB (and back again afterwards). What you can't do is work in Lightroom, which doesn't support LAB at all (at least, not when I was using it!).

Let's get started
There's processing to be done before you get to the LAB but, for the purposes of this demonstration, I will assume that you have an image that is properly white balanced, cleaned up and ready to go. I'm going to use Affinity Photo, but you should be able to follow along in your image editor of choice provided it supports the LAB colour space. If you have a well white-balanced 720nm image, the colours should appear something like this:

This is typical of a 720nm image - pale blue foliage with amber coloured sky and fairly flat. If your picture is all red and magenta, then you have a white balance problem that needs to be fixed before you proceed.

After loading the image into Affinity Photo. I choose a Levels adjustment layer:

Into the LAB
In the drop-down that currently says RGB, I choose LAB.

And in the drop-down that currently says "Master", there are three entries that interest us - Lightness, AOpponent and BOpponent. Lightness controls the brightness of the picture, the AOpponent the balance between green and magenta and the BOpponent the balance between blue and yellow.

Starting with the Lightness: the graph shows the amount of the picture which is dark (on the left) and bright (on the right). You can see that the graph extends nearly all the way to the left side, indicating that there are some good dark values in the image. However, at the bright end. the graph peters out well before the right-hand side, indicating that there are not many very bright values. To compensate, we will slide the White level slider down to about 85% so that it is nearly touching the rightmost edge of the curve.

This brightens the highlights and brings more contrast to the image. If the image is still either too bright or too dark we can use the Gama slider to adjust it to taste.

Now the real fun begins. In the dropdown that currently says "Lightness" go and have a look at the graph for both the AOpponent and BOpponent. They will look very different from the Lightness graph - just a few peaks in the middle and nothing at the sides. The BOpponent will normally be a little fatter than the AOpponent, but not by much.

Remember that the AOpponent controls the green and magenta colours - green to the left and magenta to the right. The fact that the graph is all in the middle tells us that there aren't many pure green or pure magenta. colours in the picture - most colours are a mixture of the two and sit in the middle. The same is true of the BOpponent which is a mixture of blue (on the left) and yellow (on the right). The graph is fatter but, still, there are no pure blue or pure yellow colours - just mixtures of the two. This ties up with our observation of the original picture which has some obvious pale blues with amber in the sky.

Let's start with the BOpponent. The labels on the sliders still say "Black level" and "White level" but, in the case of the BOpponent what they really mean is "Blue level" and "Yellow level". Slide the Black level slider up to nearly touch the curve and the White level slider down to nearly touch the curve on the other side.

 Looks pretty garish eh? But don't worry it will get worse yet! Make a note of the BL and WL setting (44% and 57%) and switch to the AOpponent. Now enter the same values for BL and WL. We could have used different numbers for the AOpponent, squeezing them in a bit tighter, but using the same numbers tends to keep a better balance between green-magenta and blue-yellow. You can tweak and experiment later if you like.

At this point, the picture is probably screaming in pain, and so it should, because we have just pushed the colour contrast almost to the limit. Don't worry, we will dial it back later but this is the point to talk about the next trick - blue sky and yellow foliage. This is a similar effect to channel swapping in RGB (though not identical).

To achieve a LAB swap, simply exchange the values for the BL and WL sliders in both the AOpponent and BOpponent - essentially you are reversing the colour curve and, if you want, you can do it for both or for either of the Opponents. For now, let's do it for both. So, the BL becomes 57% and the WL becomes 44%. on both the AOpponent and the BOpponent Your picture should now look something like this:

Dialling back the colour
If you thought that your 720nm problem was lack of colour, you now need to work on dialling it back and achieving a better balance. This is the role of the Gama slider and the black and white output sliders. In the Opponent channels, the gama slider controls the balance between the two colours in the opponent - green-magenta for the AOpponent and blue-yellow for the BOpponent. While the output level sliders control the amount of each colour. If you were to move both the output sliders to 50%, those two colours would disappear and would become greys.

I find it best to start with the BOpponent as it usually has more colour to work with than the AOpponent. Then switch back and forth between the two until you get a result that you can work with. I ended up here:

As with any radical colour manipulation, you need to watch out for image noise. IR images are frequently noisy anyway, so it's important to keep on top of the noise as it occurs. Usually, I will denoise the input file prior to using the LAB process and will probably denoise again when colour manipulation is complete.

The LAB process is just the foundation and I usually build on this with HSL adjustments and other filters. In this case, I chose to take the image in this direction (including cropping):

Note that this has all been done with global adjustments. There has been no hand selection of colours for differing parts of the image and no masking of effects - just overall image adjustments.

Black and white
So, what about the 720nm for black and white work? Well, a good black and white image often starts as a good colour image. So, based on the work already done, there are two approaches. First, you can take the final image above through any standard black and white conversion processes to provide the desired  gradation:

This is pure greyscale, though you could add any black and white toning approach you prefer for your monochrome images.  A second black and white approach is to go back to the LAB adjustment and move the black and white output sliders very close to the 50% value. By playing around you can generate a monochrome picture with just a tiny hint of colouration which can be a very effective alternative to standard black and white toning.

The 'Aerochrome' look
Because it is all the rage at the moment, I spent a few minutes looking at whether something close to the Aerochrome look can be generated from a 720nm filter. Using the original image, a LAB and two HSL adjustment layers later, we arrived here:

It's not perfect and I did have to paint out some colour from the stonework, but it can be done and it is another demonstration that the 720nm filter coupled with LAB and HSL adjustments can produce some impressive results.

Which version  (if any) of this image you prefer is down to personal preference, but the route to each of these images has started from a 720nm capture using simple LAB  and HSL colour space adjustments. I hope that I have demonstrated that a lot of different looks can be achieved with that humble 720nm IR filter and that all is not lost if you don't happen to have a 590nm, 850nm or IR Chrome filter for your new wide-angle lens.


  1. What a great experiment and explanation, David - thank you! I was just about to order a bunch of filters but will now go out immediately and shoot in 720nm, which I already have. I'm stuck with Photoshop but think LAB will work fine.

    1. Thank you Maggie, working in LAB is somewhat less intuitive than working in RGB - perseverance is required until you are familiar. Everything works in Photoshop but, once you convert back to RGB, you will loose the ability to adjust the LAB settings any further.

    2. You can avoid converting the entire document to Lab in Photoshop by doing all your Lab work inside a smart object. Of course it's not as convenient as being able to use a different color space in each adjustment layer.