Image correspondences using cross-correlation

version (764 KB) by David Young
Find matching features in pairs of images using normalised cross-correlation: class file and demo.


Updated 9 Dec 2011

View License

Finding corresponding features in a pair of images is the basis of many optic flow, stereo vision and image registration algorithms. One straightforward approach to finding a match is to take a small patch of one image, compute its sliding cross-correlation with the other image, and find a peak. This submission supplies a class which implements this method.

There are many other ways of finding correspondences, but normalised cross-correlation is relatively easy to understand, and fairly effective if a sparse set of matches is sufficient and the change in viewpoint is not too large. This submission is intended largely as a learning aid, though it may be usable for some applications. A demonstration script is therefore included.

The algorithm extends the basic idea in two ways. First, a reverse match may be done on each feature pair to test for consistency; this eliminates many incorrect matches. Second, the correlation computation may be greatly speeded up using the SVD trick implemented in convolve2, at the cost of some accuracy and density of matches.

The core of the submission is object-oriented to facilitate its use with image sequences and to allow efficient reuse of parts of the computation.

Cite As

David Young (2022). Image correspondences using cross-correlation (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: Fast 2-D convolution, Extended array indexing

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!