WavelengthPro Version 2.0 Release Notes

*scroll down for release notes*

This is WavelengthPro, software for full-spectrum and multi-spectral photo editing. The firstĀ video shows a demo of the original version including the Kodak Ektachrome IR film Emulator, Channel Mixer and pseudo colour-mapping. It’s an example of some ways to mergeĀ infrared, visible & ultraviolet images together:

This video (and this blog post) shows multiple ways someone might edit ultraviolet images, including Luminance Mapping:

Then finally here is a start to finish edit of an ultraviolet image to apply the ‘Gold UV’ effect:


Release Notes

Fixes of V1.2 Issues:

  • Removed pop-up welcome message
  • Added default settings

New Features Added:

  • Colour-Space Mixer
  • Colour Purity Tool
  • Cloud-Balancer
  • General editing of images (hue shift/brightness/contrast/invert/etc)
  • General loading of images (non-spectral)
  • ‘Drop to Pool’ functionality for all tools
  • Drag and Drop functionality for loading images
  • Custom greyscale in Multi-Channel Mixer
  • Advanced settings to edit config file directly
  • About WLP menu
  • Examples menu with links
  • Scale Pool

Upgrades:

  • Three image pools (Spectral, Created & General)
  • Settings now in wlpConfig.ini instead of text file
  • More basic settings options
  • More greyscale options in Multi-Channel Mixer
  • 3DLUT for Lab & LCHab colour-spaces

Editing Ultraviolet Photography

For people who do multispectral photography (infrared, visible, ultraviolet, etc) sometimes it can be tricky to achieve what you want in a traditional photo editor. That is why I am developing software to cater specifically for multispectral image processing. The software is called WavelengthPro. Below is a quick video, four images and explanations for the results.

The Resulting Images:
These four images are made from only this visible light image and this ultraviolet image. They were both taken with the same camera, Nikon D70 (hot mirror removed), using an IR-UV cut filter and the Baader-U filter. No extra editing was done.

UV-DualProcessed UV-Luminance
Dual Process Luminance Map

One often met problem in ultraviolet photography is getting the right white-balance on your camera – if you can’t achieve it you end up with rather purple pictures. In WavelengthPro there is a tool called Dual Processing where you create the green channel out of the red and blue channels which rids your image of the purpley hue.

The Luminance Map is actually a lightness map, made in HSL colour-space, it is the hue and saturation of the visible light image with the lightness of the UV image. As you can see the specular effect on the leaves completely contrasts the mat flowers. There is a good example of useful application for this method in the post Luminance Mapping: UV and Thermal.

RGBUU GBU
5to3 Map (RGBUrUb) 3to3 Map (GBU)

There are only 3 channels (ignoring alpha) for an image to be encoded into but in WavelengthPro that is attempted to be extended by mapping N channels to the 3 (RGB) output channels. A classic ultraviolet editing method is to make a GBU image, like the image on the right. The image on the left has five channels equally distributed across the three RGB channels. An array of different maps can be seen in an older post called Testing Infrared Software. If you want to download and try out the software (it’s still in alpha stage – don’t expect everything to work) then the link below will have the latest release version.

WavelengthPro Flickr Group

Luminance Mapping: UV and Thermal

This is a very simple function of WavelengthPro, using the luminance of one image and the hue/saturation of another. All it does is convert from RGB-space to HSL-space then use the L value (lightness) of a different image. In the table below I use a visible light image and an ultraviolet image (I got them from here) and map them in two ways. The first is not a Luminance map, but a GBU map the next is a luminance map which keeps the colours of the visible light and shows them at the lightness of the ultraviolet image.

Wall - VIS Wall - UV
Visible image: can’t see the graffiti well. Ultraviolet image: shows up the graffiti well.
Wall - GBU Wall VIS at UV intensity
GBU map: quite a nice colour palette and shows the graffiti quite well. Luminance map: has a “Human hue” whilst showing up the graffiti really well.

It is great for showing the ultraviolet characteristics of light whilst keeping the ‘true-colour’ feel that we’ve evolved to love. This idea isn’t new though, nightvision sometimes incorporates visible and thermal bands fused together and computer vision sometimes needs more than visible colour data to interpret a scene. One (less scientific) use is to make thermal imaging look a bit more lovely. Below is a visible image, thermal image and the Luminance map (I got them from here):

hand_in_bag hand_in_bagtherm hand_in_bag WITS map

Testing Infrared Software

This post is to show one of the features of WavelengthPro, some photography software I’m writing at the moment. It’s in early stages at the moment, I hope to add a lot more.

Channel Map Templates
I plan on having a basic and advanced way of mixing channels, so far I’ve done the basic version where you choose template maps. The advanced version will use percent sliders of every channel for every channel just like in Photoshop or GIMP etc. Below is a table showing the three starting images (all taken on a full-spec D70 using 720nm, Hoya UV/IR cut and Baader-U filters) and some of the possible mixtures using the program.

InfraredPan IR VisiblePan VIS UltravioletPan UV
Output image: Mapping information: Applying Auto-WB:
EIR building

IRG 3to3 map

[R:ir, G:r, B:g]

gEIR building
Equal split IRGB building

IRGB 4to3 map

[R:ir+(r*0.33), G:(r*0.66)+(g*0.66), B:(g*0.33)+b] * 0.75

gBoxsplit IRGB building
IRGB building

IRGB 4to3 map

[R:ir, G:(r+g)/2, B:b]

gIRGB building
IR-VIS-UV building

IR-VIS-UV 3to3 map

[R:ir, G:vis, B:uv]

gIR-VIS-UV building
IRGBU building

IRGBU 5to3 map

[R:(ir+r)/2, G:g, B:(b+uv)/2]

gIRGBU building
Boxsplit IRGBU building

IRGBU 5to3 map

[R:ir+(r*0.66), G:(r*0.33)+g+(b*0.33), B:(b*0.66) + uv] * 0.60

gBoxsplit IRGBU building
GBU building

GBU 3to3 map

[R:g, G:b, B:uv]

gGBU building
IR-UV building

IR/UV 2to3 map

[R:ir, G:(ir+uv)/2, B:uv]

gIR-UV building