PrecisionImage.NET consists of a series of namespaces which partition the classes into functional categories. These are summarized below, along with their major entities.

*PrecisionImage*

This is the root namespace for PrecisionImage.NET. It contains the most commonly used classes and enumerations. It contains the the *SourceData*
type, the *Utilities* class for performing basic pointwise operations, and several enumerations used for specifying code execution mode,
gamma-encoding state and other characteristics.

- "SourceData" - A universal image data type understood by all computational objects in PrecisionImage.NET.
- "Setup" - A static class that characterizes the host system and controls general runtime behavior.
- "Utilities" - Encapsulates various optimized mathematical functions operating on SourceData types.
- "HardwareAccelerationDevice" - Encapsualtes a system hardware accelerator, typically a GPU.
- "ColorBitDepth" - Specifies the bit-depth of a color image.
- "GrayBitDepth" - Specifies the bit-depth of a grayscale image.
- "GammaEncoding" - Specifies the state of gamma-encoding for a given image.
- "PaddingMode" - Specifies the padding mode for constrained-dimension operations.
- "ProcessingMode" - Specifies the code execution mode for a given computational object.
- "EdgeHandling" - Specifies how edges are handled for neighborhood processing operations.

*PrecisionImage.BinarizationAndMorphology*

This namespace contains objects used for binary mask specification and data thresholding, fusion and inversion as well as morphological processing operations such as binary object extraction and fourier shape description.

- "BinaryMask" - Represents a mask indicating regions to bypass during processing.
- "OtsuThresholder" - A class encapsulating the Otsu thresholding method.
- "MorphologicalProcessor" - A class encapsulating a variety of morphological processing operations.
- "FourierDescriptor" - A class encapsulating a fourier shape descriptor.
- "BinaryObject" - A class encapsulating a descrete binary region in a binary image.
- "Contour" - A class encapsulating an inner or outer perimeter of a binary object.

*PrecisionImage.Colorimetry*

This namespace contains types used for color space operations and conversions. A variety of color space conversions are available including XYZ, L*a*b*, IPT and others. Also defined are industry standard illuminant types used during the applciation of chromatic adaptation models. Custom illuminant types can also be defined and used.

- "ColorimetricConverter" - Used for implementing color space conversions.
- "Illuminant" - Encapsulates the parameters characterizing predefined and user-defined illuminants.
- "StandardIlluminants" - Encapsulates a collection of industry standard Illuminant types.
- "ChromaticAdaptationModels" - An enumeration used to specify the chromatic adaptation model.

*PrecisionImage.FeatureProcessing*

This namespace encapsulates functionality associated with the processing of image features such as edges. Ideal edge detection using Canny and LoG detections are are included as well as gradient-based edge detectors.

- "CannyEdgeDetector" - Encapsulates the Canny edge detection algorithm.
- "LoGEdgeDetector" - Encapsulates the Laplacian of Gaussian edge detetcion methodology.
- "SobelEdgeDetector" - Encapsulates the Sobel edge detection algorithm.
- "ModifiedSobelEdgeDetector" - Encapsulates the Modified Sobel edge detection algorithm.
- "PrewittEdgeDetector" - Encapsulates the Prewitt edge detection algorithm.
- "ScharrEdgeDetector" - Encapsulates the Scharr edge detection algorithm.

*PrecisionImage.FrequencyDomainProcessing*

This namespace encapsulates all functionality related to frequency-domain processing such as forward/inverse fast Fourier transforms and their related operations, as well as isotropic/anisotropic frequency filters and frequency-domain mathematical operations.

- "FourierTransform" - Used for performing a forward and inverse 2-D Fast Fourier Transform.
- "FourierSpectrum" - Contains the spectral result from a forward 2-D FFT operation.
- "IsotropicBandPassFilter" - Used for performing 2-D isotropic band-pass filtering.
- "IsotropicBandStopFilter" - Used for performing 2-D isotropic band-stop filtering.
- "IsotropicHighPassFilter" - Used for performing 2-D isotropic high-pass filtering.
- "IsotropicLowPassFilter" - Used for performing 2-D isotropic low-pass filtering.
- "DirectionalBandPassFilter" - Used for performing 2-D anisotropic band-pass filtering.
- "DirectionalBandStopFilter" - Used for performing 2-D anisotropic band-stop filtering.
- "FrequencyDomainUtilities" - Performs various mathematical operations on spectral data.

*PrecisionImage.HistogramProcessing*

This namespace encapsulates the functionality associated with histogram data collection and processing, including global and adaptive histogram equalization and statistical computations.

- "Histogram" - Encapsulates histogram data.
- "HistogramRange" - Encapsulates histogram limits.
- "HistogramProcessor" - Used for generating and/or processing histogram data.

*PrecisionImage.Resampling*

This namespace encapsulates functionality associated with resampling operations. These currently include resampling, scaling, rotation and coordinate space conversions.

- "Resampler" - Used for applying various resampling and coordinate space operations.
- "BicubicKernel" - Encapsulates an adjustable fixed-size bicubic resampling kernel.
- "CatmullRomKernel" - Encapsulates/defines a Catmull-Rom resampling kernel.
- "CubicBsplineKernel" - Encapsulates/defines a cubic B-spline resampling kernel.
- "LanczosKernel" - Encapsulates/defines an adjustable-radius Lanczos resampling kernel.
- "MitchellNetravaliKernel" - Encapsulates/defines a Mitchell-Netravali resampling kernel.

*PrecisionImage.SpatialFiltering*

This namespace encapsulates a collection of classes used to implement linear and non-linear spatial filtering operations, primarily for image noise reduction.

- "AdaptiveDWMTMfilter" - Implements an adaptive double window modified trimmed mean filter.
- "AdaptiveMedianFilter" - Implements an adaptive mean filter.
- "AlphaTrimmedMeanFilter" - Implements an alpha-trimmed mean filter.
- "ArithmeticMeanFilter" - Implements an arithmetic mean filter.
- "BilateralNoiseFilter" - Implements a bilateral noise filter.
- "ContraHarmonicMeanFilter" - Implements a contra-harmonic mean filter.
- "GaussianBlurFilter" - Implements a Gaussian blur filter.
- "GeometricMeanFilter" - Implements a geometric mean filter.
- "HarmonicMeanFilter" - Implements a harmonic mean filter.
- "LinearConvolutionOperator" - Implements a convolution operation using a custom kernel.
- "MaximumFilter" - Implements a local maximum filtering operation.
- "MedianFilter" - Implements a local median filter.
- "MidpointFilter" - Implements a local midpoint filter.
- "MinimumFilter" - Implements a local minimum filter.
- "WeightedMedianFilter" - Implements a weighted median filter.
- "YpMeanFilter" - Implements a Yp-mean filter.

*PrecisionImage.Visualization*

Encapsulates all functionality relating to the direct visualization of data, including output windowing and pseudocolor image generation. Several fixed-function
pseudocoloring algorithms are available as well as two very flexible methods that allow the association of hue/saturation/intensity values with specific data channels in a
*SourceData* object.

- "BlackBodyColorScheme" - A black-body emission pseudocoloring scheme.
- "ConstantSaturationColorScheme" - A pseudocoloring scheme exhibiting constant saturation.
- "LinearPerceptionColorScheme" - A linearly progressing luminosity pseudocoloring scheme.
- "SpectrumColorScheme" - An RGB spectrum pseudocoloring scheme.
- "VariableSaturationColorScheme" - A pseudocoloring scheme exhibiting variable saturation.
- "ShadedReliefMap" - A analytical hill shading visualization scheme.
- "OutputWindowing" - Encapsulates clipping parameters for image generation

*PrecisionImage.WaveletProcessing*

This namespace encapsulates all the functionality associated with wavelet processing operations. This includes 2D Discrete Wavelet and Discrete Wavelet Packet transforms. Two specific sub-band processors (with selectable thresholding modes)are included as well as a general sub-band processor type that allows custom sub-band processing that benefits from PrecisionImage.NET's internal parallelization.

- "DiscreteWaveletTransform" - Used for performing a forward and/or inverse 2-D DWT.
- "DiscreteWaveletPacketTransform" - Used for performing a forward and/or inverse 2-D DWPT.
- "SUREShrinkOperator" - Implements a SURE-shrink wavelet shrinking operation.
- "BAYESShrinkOperator" - Implements a Bayes-shrink wavelet shrinking operation.
- "SubBandProcessor" - Implements custom sub-band wavelet thresholding.
- "DWTSubBand" - Used to identify a particular wavelet fluctuation sub-band.
- "ThresholdMode" - Used to specify hard or soft thresholding for sub-band processing.

*PrecisionImage.WaveletProcessing.Wavelets*

This namespace encapsulates all the predefined wavelet basis types. Each particular basis type is a discrete class, and a large selection is included. In addition, custom wavelet basis filters can be declared via the fundamental "Wavelet" class. The following wavelet class types are defined:

- "BiorthogonalSpline13..BiorthogonalSpline68" - Defines a selection from the Biorthogonal Spline wavelet family.
- "CDF97" - Defines a Cohen-Daubechies-Feaveau wavelet.
- "Coiflet6..Coiflet30" - Defines a selection from the Coiflet family of wavelets.
- "Daub4..Daub40" - Defines a selection from the Daubechies family of wavelets.
- "Haar" - Defines a Haar wavelet.
- "Symlet8..Symlet40" - Defines a selection from the Symlet family of wavelets.
- "Wavelet" - Defines a custom wavelet type.

*PrecisionImage.WindowFunctions*

This namespace encapsulates the various apodization window types. These types can be applied directly to data or passed as arguments to the forward FFT funtion to pre-weight the data prior to computing the forward transform. The following class types are defined:

- "BartlettWindowFunction" - Defines a triangular apodization window.
- "BlackmanHarrisWindowFunction" - Defines a 4-term Blackman-Harris apodization window.
- "BlackmanNuttallWindowFunction" - Defines a 4-term Blackman-Nuttall apodization window.
- "BlackmanWindowFunction" - Defines a 3-term Blackman apodization window.
- "CosineWindowFunction" - Defines a squared cosine apodization window.
- "HammingWindowFunction" - Defines a Hamming apodization window.
- "HanningWindowFunction" - Defines a Hanning apodization window.
- "KaiserWindowFunction" - Defines a Kaiser apodization window.
- "LanczosWindowFunction" - Defines a Lanczos apodization window.
- "NuttallWindowFunction" - Defines a Nuttall apodization window.
- "ParzenWindowFunction" - Defines a Parzen apodization window.
- "ZonalWindowFunction" - Defines a zonal apodization window.