PrecisionImage.NET is designed to be easily integrated into WPF client applications that require something more than a standard "image-in, image-out" SDK. The major design goal for PrecisionImage.NET was to enable 3rd party developers and OEMs to quickly implement sequential processing pipelines of any complexity and length. For maximum productivity when using PrecisionImage.NET, it is important to have a good understanding of the following three simple concepts underlying the design of the SDK:
Virtually every computational class in PrecisionImage.NET operates on data container objects instantiated from the SourceData class. This class is used to store data from initializing BitmapSource objects as well as other data sources. Since SourceData objects store data at 32-bit floating point precision, they can be passed through a processing chain without acumulating discretization errors.
Since the SourceData class stores data in an unbounded 32-bit floating-point format, it affords consuming applications the most flexibility when generating images for visualization. Images can be generated at any time, and output windowing and levelling is either performed automatically or manually via the OutputWindowing class. Images color channels can be swapped, independantly histogram stretched, visualized as grayscale or pseudocolored images, or any number of sophisticated built in operations.
PrecisionImage.NET allows the developer full control over how their code executes on target platforms. For maximum productivity and minimum time to market you can choose to develop your solution focusing exclusively on algorithm implementation and rely on the automatic execution engine. If you require more control over threading and targeting of hardware acceleration devices, you can use the ProcessingMode enumeration to control the code execution behavior of individual computational objects.
Understanding these three subjects will allow you to derive the maximum benefit and utility from PrecisionImage.NET with minimum effort and time.