Hi! I am a Brazilian guy that implemented the famous Zhang’s point match algorithm. The complete description of the algorithm can be find in the paper below. But, concisely, the algorithm consists of three steps:
- Establish initial correspondences using a classical relaxation technique
- Estimate robustly the epipolar geometry
- Establish correspondences using estimated epipolar geometry as in stereo matching
There may be a large percentage of false matches (usually around 20%, sometimes 40%) using heuristic matching techniques such as correlation, and a false match may be completely different from the valid matches. The robust technique implemented deals with these issues and can theoretically detect outliers when they make up as much as 50% of whole data.
This code have been developed for instructional and research purposes, and have been shared with students in my university in the past. The code was implemented in m-file script language that is mostly compatible with Matlab. Matlab is an integrated numerical analysis package that makes it very easy implement computational modeling codes.
The toolbox was tested in an Ubuntu Linux Box. But, it should also work in any system.
If you have any questions, please contact me. Don’t hesitate to ask!
List of Functions
- mc_rzhang.m (main function) – A robust point match function;
- mc_zhang.mexglx – Points correspondences by relaxation (C language implementation);
- fm_8point.m – Estimates the Fundamental Matrix by Hartley’s 8-point algorithm;
- fm_lmeds.m – Estimates the Fundamental Matrix by LMedS algorithm;
- pt_2DNrml.m – Normalizes the interest points by Hartley’s algorithm;
- fm_adjust.m – Calculates the adjust of a set of points to a Fundamental Matrix;
- cn_harris.m – Harris’ algorithm for corner detection;
- imshow.m – Shows a image in the Matlab screen;
- im_gray.m – If the image is colored, converts it to a gray image;
- rgb2gray.m – Converts a RGB image to a gray scale.
Download & Install
make && make install
So, the functions will be available in the directory called rzhang. See the script test.m to know how to use the functions.
Zhang, Z., Deriche, R., Faugeras, O. D., e Luong, Q. T. (1995). A robust technique for matching two uncalibrated images through the recovery of the unknown epipolar geometry. Artificial Intelligence, 78(1-2):87-119.