AForge.NET
he page provides the list of features available in the AForge.NET framework 2.1.2 version, which is currently available.
AForge.NET framework consists of several libraries, so below the framework's features are presented grouped by them:
AForge.Imaging, which is the biggest library of the framework so far, contains different image processing routines, which are aimed to help as in image enhancement/processing, as in some computer vision tasks:
- Linear color correction filters (RGB/HSL/YCbCr correction, brightness/contrast/saturation correction);
- Nonlinear color correction filters (contrast stretch, histogram equalization, color remapping, gamma correction);
- Image re-coloring filters (grayscale, sepia, hue modifier, rotate channels, invert);
- Pixel filtering by color (RGB, HSL, YCbCr color spaces);
- Color channels manipulations (RGB and YCbCr color spaces);
- Color reduction (including color dithering);
- Binarization filters (threshold, threshold with carry, ordered dithering, Bayer dithering, Floyd-Steinberg dithering, Burkes dithering, Jarvis-Judice-Ninke dithering, Sierra dithering, Stucki dithering);
- Adaptive binarization (simple image statistics, iterative thresholding, Otsu thresholding);
- Adaptive local thresholding;
- Convolution filters (mean, blur, sharpen, edges, Gaussian blur, custom convolution filters);
- Mathematical morphology filters (erosion, dilatation, opening, closing, top hat, bottom hat, hit-and-miss);
- Edge detectors (homogeneity, difference, sobel, canny);
- 2 source filters (merge, intersect, add, subtract, difference, move towards, morph, thresholded difference, thresholded euclidean difference);
- Blobs processing (counting, extraction, filtering, connected component labeling);
- Filling holes in binary images;
- Corner detectors (Moravec, Susan);
- Quadrilateral transformation and corners' finding;
- Resize and rotation (nearest neighbor, bilinear, bicubic);
- Transformation to/from polar coordinates;
- Hough transformation (line and circle transformations);
- Exhaustive template and block matchin;
- Image color statistics (RGB, HSL, YCbCr) and vertical/horizontal statistics (RGB);
- Smoothing filters (Median, Mean, Conservative Smoothing, Adaptive Smoothing, Bilateral);
- Texture generators (clouds, marble, wood, labyrinth, textile);
- Texture filters (texturing, merging, filtering);
- More effects, like pixelating, jittering, oil painting, water wave, image warping, etc;
- Noise generators (additive, salt-and-papper);
- Document skew checker for checking rotation of scanned documents;
- Stereo anaglyph image creating;
- Flood fill filters (using specified color or calculate mean color of the area);
- Flat Field Illumination correction, Simple skeletonization, Shrink, Canvas crop/fill/move, mirroring, Bayer filter, mask/masked filter;
- Fourier transformation (low-pass and hi-pass filters);
- Some image decoders for custom image formats (PNM, FITS);
- etc.
AForge.Vision library consists of different motion detection and motion processing routines.
AForge.Math library contains different math related algorithms, which are used as internally by the framework, as can be used as they are by users. Some of the most interesting algorithm are:
- 3D pose estimation using POSIT and Coplanar POSIT algorithms (see dedicated article);
- Simple shape checker (see dedicated article);
- Graham convex hull algorithm;
- etc.
AForge.Video library contains different classes, which provide access to video data. Nice to have it taking into account the amount of image processing stuff in the framework.
- Access to JPEG and MJPEG streams, which enables access to IP cameras;
- Access to USB web cameras, capture devices and video files through DirectShow interface;
- Reading/writing AVI files using Audio for Windows interface;
- Reading/writing video files using FFmpeg library;
- Support of Microsoft Kinect sensor;
- Support of XIMEA cameras;
- Asynchronous video source wrapper.
AForge.Robotics library contains some classes to manipulate some robotics kits:
- Lego Mindstorm RCX Robotics kit;
- Lego Mindstorm NXT Robotics kit;.
- Qwerk robotics board;
- Surveyor SRV-1 Blackfin robot;
- Surveyor Stereo Vision System robotics board.
AForge.Neuro library consists of some common neural network architectures' implementations and their learning algorithms:
- Multi-layer feed forward networks utilizing activation function;
- Distance networks (Kohonen SOM, for example);
- Simple perceptron's learning, Delta rule learning, Back Propagation learning, Kohonen SOM learning, Evolutionary learning based on Genetic Algorithm;
- Activation functions (threshold, sigmoid, bipolar sigmoid).
AForge.Genetic library consists of classes aimed to solve different tasks from Genetic Algorithms (GA), Genetic Programming (GP) and Gene Expression Programming (GEP) areas:
- GA chromosomes (binary, short array, double array), GP tree based chromosome and GEP chromosome;
- Selection algorithms (elite, roulette wheel, rank);
- Common fitness functions (1/2D function optimization, symbolic regression, time series prediction).
- Population class to handle chromosomes.
AForge.Fuzzy library consists of classes to perform different fuzzy computations, starting from using basic fuzzy sets and linguistic variables and continuing with complete inference system, which is capable of running set of fuzzy rules evaluating requested fuzzy variable.
AForge.MachineLearning library contains some classes from machine learning area:
- QLearning and Sarsa learning algorithms;
- Epsilon greedy, Boltzmann, Roulette wheel and Tabu Search exploration policies.
The AForge.NET framework contains also some more libraries/namespaces providing additional functionality, which is used by the framework, its samples or may be used directly in applications. Check AForge.NET framework's documentation to find all the information about all the classes available in the framework.