tracking correlation coefficient (linear and non-linear) between two images

5 views (last 30 days)
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).

Answers (1)

Anand
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
  1 Comment
Alex
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?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!