Homography app, wrote this as a testbed to remove/add perspective from/to images. Uses homography and svd to create matrix that can map one quad onto another. Written using MFC/C++/eigenlib/jpeglib, more details can be found here:
https://www.youtube.com/watch?v=w7J6oxk9tSA
Introduction to homography:
Example of persepective removal: