MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Alex
on 25 Apr 2013

When I apply corr2 to two similar images (delay between two consecutive images of 1s) it gives correlation coef. close to 0.99 but when I use corr2 for two similar flat field normalized images (delay around 1s between the images) correlation coef. is close to 0. Why is that? Do I have any options other than the built-in corr2 to determine the degree of correlation between two images? I would like to try several approaches to track the correlation between two images (linear and non-linear correlation).

Answer by Anand
on 25 Apr 2013

You're probably making a mistake with the normalization.

Here's an example that doesn't change the correlation coefficient:

im1 = imread('cameraman.tif'); im2 = imnoise(im1,'gaussian'); corr2(im1,im2) %0.9286 im1n = double(im1)./sum(sum(double(im1))); im2n = double(im2)./sum(sum(double(im2))); corr2(im1n,im2n) %0.9286

Alex
on 25 Apr 2013

thank you for the answer, by the normalization I mean division of one image (data) by another image (reference) to reduce effect of different pixel sensitivity in CCD camera. corr2 always gives a value close to 0 even though the images after the normalization are identical. Maybe, linear correlation is not the best way to compare normalized images?

## 0 Comments