Core Optical, Inc.
IsotropicFrequencyFilter ClassIndustrial Strength, Scientific Grade
The abstract base class for all isotropic frequency filters.
Inheritance Hierarchy

OnlineSystem Object
  PrecisionImage.FrequencyDomainProcessing IsotropicFrequencyFilter
    PrecisionImage.FrequencyDomainProcessing IsotropicBandPassFilter
    PrecisionImage.FrequencyDomainProcessing IsotropicBandStopFilter
    PrecisionImage.FrequencyDomainProcessing IsotropicHighPassFilter
    PrecisionImage.FrequencyDomainProcessing IsotropicLowPassFilter

Namespace: PrecisionImage.FrequencyDomainProcessing
Assembly: PrecisionImage (in PrecisionImage.dll) Version: 2.0.0.0 (2.0.0.0)
Syntax

public abstract class IsotropicFrequencyFilter
Remarks

This abstract base class is used internally by the library and cannot be directly derived from by 3rd party applications.

Isotropic frequency filters are used to filter out a portion of an image's spectrum while treating all directions equally. These filters are therefore circularly symmetric. The filter type implemented in PrecisonImage.NET is a Butterworth filter with a tunable parameter to modify the frequency roll-off behavior. In the case of a band-pass or band-stop filter, both edges of the roll-off can be tuned independantly.

The isotropic frequency filters expose two methods - GetFilterImage(Int32, GrayBitDepth, GammaEncoding) and GetCoefficientCrossSection(Int32) - that are useful when designing the frequency filters as they allow the visualization of the filter shape. The filter coefficients are computed using the object's current parameters and the image is generated based on these values (1.0 is assigned white and 0.0 is assigned black, with scales of gray indicating intermediate values). For example, to visualize an isotropic low-pass filter that passes the lower 50% of the spectrum while cutting-off the upper 50% of the spectrum with a gradual frequency roll-off, one would do the following:

using PrecisionImage;
using PrecisionImage.FrequencyDomainProcessing;

// Instantiate a gradual low-pass isotropic filter: 
IsotropicLowPassFilter filter = new IsotropicLowPassFilter(0.5f, 5.0f);

// Generate the filter visualization as a 512x512 8-bit grayscale image and assign it as the source for an Image component:
image1.Source = filter.GetFilterImage(512, PixelFormats.Gray8, GammaEncoding.None);

The above example generates an image similar to the following:

See Also