Click or drag to resize
OIV.ImageViz.Engines.ImageFiltering Namespaces

This category gathers engines for filtering images.

Namespaces
NamespaceDescription
OIV.ImageViz.Engines.ImageFiltering.ColorTransforms

This group contains engines specifically applying on a color input image.

OIV.ImageViz.Engines.ImageFiltering.FrequencyDomain

This category contains FFT and related engines to work on frequency domain.

OIV.ImageViz.Engines.ImageFiltering.GrayscaleTransforms

The Grayscale Transforms category contains gray level transformations such as histogram equalization and intensity rescaling operations.

OIV.ImageViz.Engines.ImageFiltering.Sharpening

The Sharpening category contains filters used to enhance the edges of objects and adjust contrast and shade characteristics.

OIV.ImageViz.Engines.ImageFiltering.SmoothingAndDenoising

The Smoothing And Denoising category contains lowpass filters to reduce the contrast and soften the edges of objects in an image.

OIV.ImageViz.Engines.ImageFiltering.TextureFilters

This category contains engines revealing texture attributes.

Remarks

Image Filters

A filter transforms an image to emphasize or stress a specific feature of its structure. Filtering techniques are often useful to extract desired information from input data or simply to improve the appearance of the input data. For example, filtering techniques are used to remove noise from corrupted images or to enhance poorly contrasted or other images.

A common problem in filtering theory is to estimate a signal mixed with noise. A solution is the moving average , where the value of each pixel is replaced by the average of its neighbors (Figure 1). This is based on the assumption that short ranged variations result from noise. The filtered output can then be viewed as the main trend of the function.

Local changes in intensity present another common problem. Various filters can detect sharp transitions to enhance, contrast or detect edges. The OIV.ImageViz.Engines.EdgeDetection algorithms use these types of filters.

Apart from the examples above, specific filters can be designed depending of the type of desired transition, such as:

  • Removing a grid consisting of uniformly spaced dark lines superimposed on an image.

  • Restoring an image blurred by some degradation processes. (A difficult problem, the solution to which requires a very good knowledge of the degradation process itself.)

From the mathematical point of view, a filter is an operator mapping an input function to an output function : where and denote two functions of .

If is an image , the output function is the filtered image.

Linear and Non-linear Filters

Filters are usually distinguished as linear or non-linear. Linear filters are widely used because they are easy to implement and, often, very intuitive. A filter is linear if:

The class of non-linear filters is too large to be presented in a comprehensive way here. Besides, many non-linear filters are in fact particular algorithms that do not fall into a specific theoretical family. Non-linear filters include OIV.ImageViz.Engines.ImageFiltering.Sharpening.SoDelineateProcessing and OIV.ImageViz.Engines.ImageFiltering.Sharpening.SoShadeProcessing2d in the OIV.ImageViz.Engines.ImageFiltering.Sharpening category, as well as the OIV.ImageViz.Engines.ImageFiltering.SmoothingAndDenoising.SoMedianFilterProcessing in the OIV.ImageViz.Engines.ImageFiltering.SmoothingAndDenoising category.

Some non-linear filters like the OIV.ImageViz.Engines.ArithmeticAndLogic.LogicalOperations.SoBitShiftProcessing filter are shift invariant filters, i.e. filters such that: where denotes the function translated by vector .

Shift invariant filters have the same effect on and its translated representations, which means that it is based on neighborhood operators where the same operations are performed around each pixel of the image.