comparing two images quantitavely

I want to compare a number of images with a reference image to determine which image matched the reference image most. I think getting a number out of this comparison can be useful. Here is the code:
I1 = imread('I1.jpg');
I2 = imread('I2.jpg');
obj = imshowpair(I1,I2, 'diff')
obj.CData
Avg = mean (mean(obj.CData))
Is it possible to use the CData information for this comparison? Am I doing this right? I also couldn't find what kind of information is stored in CData. And is there any better way to quantify this comparison?
Thank you

 采纳的回答

Image Analyst
Image Analyst 2016-11-9
No, that's not right. You'd better off using ssim(), immse(), or psnr(). Or MAD: https://en.wikipedia.org/wiki/Median_absolute_deviation, https://en.wikipedia.org/wiki/Average_absolute_deviation

3 个评论

Thank you for the help. Still interested to know what information is represented or stored in CData.
CData is the pixel values of the image displayed in the axes. It seems to be the actual pixel values, not the 24 bit RGB values, so it you displayed a floating point image in the range 1000 to 123456, it would give you those numbers back, not numbers in the 0-255 range.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by