4. LUTs
About LUTs
LUTs, or false-color lookup tables, allow for indexed color values to be quickly applied to data as a visualization.
This only has one goal -- to make information more easily understood.
LUTs are primary used by the mapping and gamma spectroscopy components. This section contains early documentation and specific examples of this in action, with further links and information if you wanted to know more.
LUT Options
Available options for LUTs can vary depending on how they are used by a specific component.
In general, the options available are:
Scale Mode (linear, LN, LOG10)
LN and LOG10 are non-linear scaling used to provide improved contrast at low ranges, while compressing high ranges
LOG10 provides a stronger non-linear histogram shift than "LN"
Range (min, max)
Note the gamma spectroscopy histogram has a fixed range of 0.0 - 2000.0 keV applied presently.
Invert
Invert reverses the order of the colors, it does not invert the RGB values.
Discretize
Decreases the color depth of a LUT, which in some situations can make larger-scale patterns more visible.
Specific LUT Information
Rainbow
If you've seen the film "Predator", you know what this is.
General 3-color LUT.
Best in cases where each color band highlights a distinct range of data
Weak in cases where data ranges bleed across color bands
From ImageJ's "Rainbow RGB"
Safecast
Copy of Safecast's palette used on their web map
Isothermic palette; clear breakpoints at 0.2, 0.5, 1.0, 5.0, and 10.0.
These breakpoints are fixed and the scale is static
Isothermic palettes excel at highlighting bands of data with greater contrast, but do so at the cost of not showing relative intensity in that band well (or at all).
From Safecast
Fire (default)
This type of palette is sort of the new standard in thermal cameras (at least the building inspection ones)
This emulates how hot liquid metal looks to the human eye (ie, black body radiation)
Less prone to banding effects than rainbow
Somewhat better contrast at low intensities than rainbow
From ImageJ
(image credit: FLIR)
Green Fire Blue
Rainbow palette with somewhat higher brightness and lower contrast
From ImageJ
Smart
Isothermic palette
General idea is, make anything around normal levels grayscale, and only color in the hotspots
From ImageJ
Thallium
Monochrome green palette
Provides better contrast at higher ranges, by sacrificing contrast at lower ranges (black crush)
From ImageJ
Arctic
Higher brightness rainbow palette
Similar to (but distinct from) ImageJ's "cool" LUT
White Hot
Simple luminance scaling based on intensity
Extremely common palette used pretty much everywhere
Lack of chroma makes it have less visible contrast to the human eye
Black Hot
Inverse of white hot.
Shows lower intensities better than white hot, generally.
Again, generally less contrast than colored palettes.
ENVG Color Fusion
Variant of the "Smart"-type LUT, with better brightness at lower ranges
Green and then breaks to orange -> yellow
This is a LUT I created based on one of the AN/PSQ-20's display modes
(image credit: TNVC)
Gem
Darker version of Iron, mostly
From ImageJ
Isotherm
Pretty standard white-hot with red-high and blue-low isotherm bands
Good at highlighting extremes
Used to find dew points in thermal cameras
Similar to (but distinct from) ImageJ's "HiLo" LUT
Rainbow HC
A rainbow variant with 6 colors
Increased bands cover large differences better, but it is excessive for limited ranges
Cherenkov
A monochrome blue palette with a higher minimum brightness
I modeled this after the visual appearance of Cherenkov radiation
(image credit: Argonne National Laboratory)
Similar to (but distinct from) ImageJ's "Cyan Hot" LUT
Firestorm
Similar to Cherenkov, intent was a palette with increased minimum brightness
Similar to (but distinct from) ImageJ's "Red Hot" LUT
RGB Ramps
Very heavily banded palette
Situationally useful for increased contrast in small ranges of data
Many LUTs have been converted directly from ImageJ. Don't thank me, thank the NIH.
LUT Example: X-Ray of Canine Lateral Abdomen
The original image is the first. The other images have been colored using ImageJ's LUTs that are also available for mapping in Geiger Bot.
Some are built-in to ImageJ, the others I have created and imported. (using the NucMed plugins)
While you're looking at map data and not a radiograph, this should at least be a good visual example of the differences between some of the LUTs. Other than the LUT being applied, they are unaltered.
White Hot**
Black Hot
**actually black hot, but we'll ignore that for a better visual comparison
Fire (ImageJ)
Iron (FLIR)
Gem (ImageJ)
Blue Red Blended (FLIR)
Rainbow RGB (ImageJ)
Rainbow (FLIR)
Rainbow HC (FLIR)
Lava (FLIR)
Arctic (FLIR)
Green Fire Blue (ImageJ)
Cherenkov
Firestorm
Thallium (ImageJ)
Smart (ImageJ)
ENVG Color Fusion
Isotherm
RGB Ramps
Discussion:
Note how "Green Fire Blue" shows blown highlights vs. the source image. And how "Thallium" exhibits black crush while at the same time enhancing the contrast of the bone structure. Yet, for "Green Fire Blue", intermediate contrast is enhanced, and a pathology in this image (bladder hypertrophy) is more apparent than in the original image. (in "Thallium" it is lost)
The "isothermic" type palettes try to band colors to highlight layers that may or may not exist. "Isotherm" itself only partially highlights the bones, making it not particularly useful in this case unless the image histogram were altered. "Smart" and "ENVG Color Fusion" both do a better job separating soft tissue from bone, but neither are truly successful. (in this image, due to the source contrast, it is not possible to isolate the bone and soft tissue by luma)
"Rainbow HC" goes in the other direction, and overall decreases the image contrast because the heavy color banding make the original luma values difficult to differentiate. The hypertrophic bladder pathology is not really visible. And such is the double-edge of color perception; it can obfuscate changes in brightness. (which is why red-green colorblind soldiers were sometimes used to defeat enemy camouflage)
Optimal LUT Selection:
There is no one perfect LUT. For the absolute best view of a particular dataset -- be it an x-ray radiograph, map of geolocated radiation data in Geiger Bot, or thermal camera image -- the minimum and maximum values probably need to be tweaked, and the LUT chosen and tested by trial and error. It is a somewhat more specialized version of postprocessing images with Photoshop.
That said, some of the LUTs are more specialized than others. For general use, specifically in Geiger Bot's mapping module for radiation data, I think "Iron" works the best with diverse ranges of data and loss of intermediate contrast data (ie, abrupt jumps in color instead of smooth scaling). But, it is fully customizable, and you can choose your own default as you like.
Further LUT Use Links
In two words, I'd say it is the "scientific Photoshop".
Great tool with many built-in LUTs
Free and Java-based
The 3D surface plots are also nifty
Essential tools for easily importing/exporting LUTs from ImageJ
Would also probably be good if only there were giant machines that could see inside the human body
Want to apply LUTs to video data in realtime? First download this. (Win32/64 only)
You'll be using it in "Capture" mode.
Not very exciting for imagery in the visual spectrum, but great if you have a thermal camera that is white-hot / black-hot only like me.
Pseudocolor Filter for Virtual Dub
After dropping this into your Virtual Dub directory:
1. Go to capture Mode in Virtual Dub
2. Select an input source (video in / camera)
3. Make sure preview / both fields is enabled
4. Make sure filters are enabled
5. Add the pseudocolor filter to the chain
6. Configure it by selecting a LUT file
Fun fact: The (terrible) LUTs that come with this originated with the old DOS program "FractInt".
LUT Maker for VDub's Pseudocolor Filter
I made most of my custom LUTs with this
Hey, it's easier than coding Chebyshev polynomials
While I would love to have a LUT import feature in Geiger Bot the time constraints make it unlikely to happen anytime soon. Nonetheless, if anyone creates any LUTs they'd like to see in Geiger Bot, email them to me and I'll probably add them.