How to do correlation between two tiff image files?

Find the pixel-wise correlation between two tiff images and store it in a matrix?

답변 (2개)

KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 3월 7일
편집: madhan ravi 2019년 3월 7일
im1=imread('image1.tif');
im2=imread('image2.tif');
result=corr2(im1,im2);
Note: If the input images are RGB, convert both images in gray and apply corr2.
Please ensure that both images having same size.

댓글 수: 3

ok, cant we get a graph of correlation in matlab?
the result is a value!
Direct corelation gives a number, if you are looking for matrics, please look on Correlation coefficients
im1=double(rgb2gray(imread('21_training.tif')));
im2=double(rgb2gray(imread('25_training.tif')));
R=corrcoef(im1,im2)
R =
1.0000 0.9419
0.9419 1.0000
But I dont know wheather it serves the main objective of your problem or not?
You can find the corrcoef of single matrix, which returns a matrix of coefficients.
im1=double(gray_image);
R=corrcoef(im1)
but,
i need a graphical representation of pixel wise correlation between two tiif images?

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 2019년 3월 11일
Try xcorr2():
correlationImage = xcorr2(image1, image2);
imshow(correlationImage, []);
It will give an image of the spatial correlation of image1 with image2. From that you can get profiles if you want.

댓글 수: 4

the process is taking too long, what do you think is the reason
Your images are probably too big. You might want to do it in the Fourier domain by multiplying their FT then inverse FT.
How to print the resulting tif file into a folder
You can use imwrite(). If correlationImage is double, then convert to uint8 and then call imwrite():
uint8Image = uint8(mat2gray(correlationImage));
imwrite(uint8Image, fileName);

댓글을 달려면 로그인하십시오.

카테고리

질문:

2019년 3월 7일

댓글:

2020년 3월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by