Core Optical, Inc.
Namespace overviewIndustrial Strength, Scientific Grade

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.

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.

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.

PrecisionImage.HistogramProcessing

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

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.

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.

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.

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: