If you have a noisy image, you can apply averaging to reduce the noise and get more accurate measurements. Averaging is an image filter and there are more image filters available in IRT Analyzer:

1.Median filters.

2.Convolution filters with different kernels: Gaussian, Laplacian, Prewitt, Sobel, Sharpen. Also you can use your custom kernels.

3.Dilation and erosion.

4.Memory operations to create filter combinations.

Filters can be applied to the entire image or to an analysis object. Click on an analysis object to make it active or click outside any analysis object to make the entire image active and select 'Temperature | Filters' in the main menu (there is also corresponding item in context menus).

thermo_analysis_filters_dialog

Filters will be applied one after the other as you see them in 'Filters combination' list.

Median filter

Median filter sets every pixel value to be the median of the pixel values in the neighborhood of that pixel. As the averaging filter median filter is used to reduce noise. The outcome of median filtering is that pixels with outlying values are forced to become more like their neighbors. The advantage of median filter is that it does not make the image blurry (edges are preserved).

Definition: the median m of a set of values is such that half the values in the set are less than m and half are greater.

For example, suppose pixel's neighbor values are (10, 18, 20, 15, 17, 20, 22, 25, and 100). If we sort the values we get (10, 15, 17, 18, |20|, 20, 22, 25, 100) and the median here is 20.

Pixel's neighborhood is always a square and its size is selectable to be 3x3, 5x5 or 7x7.

Convolution filters

The 2D convolution is a versatile image processing primitive which can be used in a variety of image processing operations, for example, edge detection, blurring, noise removal, and feature detection. It is also known as mask convolution or spatial convolution.

For 2D convolution, a rectangular kernel is used. The kernel is a matrix of signed integers. The kernel could be a single row (a row filter) or a single column (a column filter) or composed of several rows and columns. The center cell in the kernel is called anchor. For each input pixel, the kernel is placed on the image such that the anchor coincides with the input pixel. The output pixel value is computed as:

thermo_analysis_convolution_formula

where thermo_analysis_convolution_formula_x is the input pixel value and thermo_analysis_convolution_formula_h denotes the kernel. The output pixel value is scaled by the divisor.

IRT Analyzer provides a set of predefined kernels, namely: Prewitt (vertical and horizontal), Sobel (vertical and horizontal), Laplassian, Gaussian, Mean, Sharpen kernel and kernels to enhance focus and details. These kernels are organized in groups by their effect on image pixels.

thermo_analysis_convolution

In addition, you can define your own kernel by editing the 'Kernel' table. Your custom kernels can be remembered for future use (press 'Save' button to name your kernel and save it).

Mathematical morphology filters (erosion and dilation)

Morphological image processing pursues the goals of removing image imperfections (such as noise or texture) by accounting for the form and structure of the image. It is beyond the scope of this manual to describe how morphological filters work, please refer to the corresponding topic in image processing theory.

When you add dilation or erosion filters you need to specify their structure item, which can be a 3x3 or 5x5 matrix.

thermo_analysis_structure_item

Memory

This is not a real filter. It behaves like the memory function of a usual calculator and allows to make a more complicated combinations of image filters. For example, filter below will outline edges on an image.

thermo_analysis_memory_filter_sample

Memory filter operations:

thermo_analysis_memory_filter_dialog

Load: puts the image into the memory in its current state.

Plus: adds the current image values to the image value already in the memory.

Minus: subtracts the current image values from the image values already in the memory.

Swap: swaps the current image and the image in the memory.

Reset: resets the memory image to zeros.