Advanced Imaging Magazine

How To... Use LUTs for Pseudo-Coloring

Figure 1.

Advertisement

Imperx's LYNX camera line (featuring cameras with resolution from VGA to 16 Mega-pixels) uses a modern FPGA as a high-performance digital signal processing (DSP) engine for image processing and camera control. This allows us to create a low-cost, yet very powerful user configurable image-processing module by implementing a 32-bit RISC processor in the FPGA. This flexible platform—a combination of hardware, firmware, and software adds intelligent control, and provides a flexible path for changing the processing power and camera features through a remote FPGA reconfiguration. This enables a number of unique camera features like firmware and software upgradeability, programmable frame rates, multiple triggering options, user programmable and unloadable Look-Up Tables (LUT), Flat Field Correction (FFC), Defective Pixel Correction Map (DPM), and many more.

Historically, camera built-in LUTs have been used primarily for gamma and knee corrections. Using a 32-bit RISC processor in the camera, gives our users the flexibility to create their own LUT and to upload them into the camera. The user can modify and transform the original video data into any arbitrary video data—any 12-bit input value into any 12-bit output value. Thus opens a new, very attractive possibility for LUTs to be used for image processing. The biggest advantage in implementing LUTs as a processing engine is that there is absolutely no delay; the resultant image is available instantaneously.

One such application where LUT can be used for image processing is pseudo-coloring. A real-color image of an object is an image that appears to the human eye just like the original object would. In a pseudo-color image this close correspondence between object color and image color is violated. When a real-color is applied to monochrome images, the perceived brightness of an object is preserved in its depiction. When a pseudo-color is applied to monochrome image, the perceived brightness is distorted, and the intensity differences are represented via color. Pseudo-color is often applied to images where relative values are important, but specific representation is not, for example, X-ray images, ultrasonic imaging, mapping, visualizing images which have been taken outside of the visible range (IR, UV, radar…), etc.. In general, pseudo-color adds one more independent dimension measurement over a two-dimensional map or image. Although pseudo-coloring does not increase the information contents of the original image, it can make some details more visible, by increasing the distance in color space between successive gray levels. To convert a monochrome image to a pseudo-color one the user has to select the conversion function. This function is the mapping of each pixel luminance (grayscale) value to a particular color. A typical example is the continuous grayscale to rainbow conversion (Figure 1) where black is represented as violet and white as red.