Image Processing Toolbox User's Guide |
Normalized two-dimensional cross-correlation
Syntax
Description
C = normxcorr2(TEMPLATE,A)
computes the normalized cross-correlation of the matrices TEMPLATE
and A
. The matrix A
must be larger than the matrix TEMPLATE
for the normalization to be meaningful. The values of TEMPLATE
cannot all be the same. The resulting matrix C
contains the correlation coefficients, which can range in value from -1.0 to 1.0.
Class Support
The input matrices can be of class uint8
, uint16
, or double
.
Algorithm
normxcorr2
uses the following general procedure:
Example
T = .2*ones(11); % make light gray plus on dark gray background T(6,3:9) = .6; T(3:9,6) = .6; BW = T>0.5; % make white plus on black background imshow(BW), title('Binary') figure, imshow(T), title('Template') % make new image that offsets template T T_offset = .2*ones(21); offset = [3 5]; % shift by 3 rows, 5 columns T_offset( (1:size(T,1))+offset(1), (1:size(T,2))+offset(2) ) = T; imshow(T_offset), title('Offset Template') % cross-correlate BW and T_offset to recover offset cc = normxcorr2(BW,T_offset); [max_cc, imax] = max(abs(cc(:))); [ypeak, xpeak] = ind2sub(size(cc),imax(1)); corr_offset = [ (ypeak-size(T,1)) (xpeak-size(T,2)) ]; isequal(corr_offset,offset) % 1 means offset was recovered
See Also
References
[1] Lewis, J. P., "Fast Normalized Cross-Correlation," Industrial Light &
Magic,
<http://www.idiom.com/~zilla/Papers/nvisionInterface/nip.html>
[2] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume II, Addison-Wesley, 1992, pp. 316-317.
nlfilter | ntsc2rgb |
© 1994-2005 The MathWorks, Inc.