The class implements simple algorithm described by Olivier Thill for transforming quadrilateral area from a source image into rectangular image. The idea of the algorithm is based on finding for each line of destination rectangular image a corresponding line connecting "left" and "right" sides of quadrilateral in a source image. Then the line is linearly transformed into the line in destination image.
Use QuadrilateralTransformation to avoid the above mentioned limitations, which is a more advanced quadrilateral transformation algorithms (although a bit more computationally expensive).
The image processing filter accepts 8 grayscale images and 24/32 bpp color images for processing.
Sample usage:
// define quadrilateral's corners List<IntPoint> corners = new List<IntPoint>( ); corners.Add( new IntPoint( 99, 99 ) ); corners.Add( new IntPoint( 156, 79 ) ); corners.Add( new IntPoint( 184, 126 ) ); corners.Add( new IntPoint( 122, 150 ) ); // create filter SimpleQuadrilateralTransformation filter = new SimpleQuadrilateralTransformation( corners, 200, 200 ); // apply the filter Bitmap newImage = filter.Apply( image );
Initial image:
Result image: