Given an STL vector of xy point to xy point matches, compute an estimated homography (3x3 matrix) which best matches the transformation from image 1 to image 2 (from which the xy point matches were extracted).
<p>
The code MUST utilize the RANSAC algorithm for identifying and excluding outliers.
<p>
The code must be in C++, and compile in VS2003 with no warnings. The code will be used on the Mac and Linux as well.
<p>
Only a single entry point need be exposed - a function returning a boolean for success or failure and taking a place holder for the 3x3 matrix as well as the aforementioned STL vector of xy point to xy point matches.
<p>
There are many papers and even LGPL implementations you can use for reference. Any code which you include from others must be able to be freely used in a commercial product.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
We want a library / static dll deliverable usable on MacOS X, Win32, and Linux without modification.