如何使用线性相关来使用MATLAB比较图像

时间:2012-03-28 21:14:59

标签: matlab compare correlation

我当前被要求比较某些图像(使用嵌套for循环)并确定哪些图像彼此最接近(不是特别完全相同)和2个最不同的图像,或者使用线性相关或者是愚蠢的。

由于所有图像都是具有完全相同尺寸的二维基质,我现在唯一可以提出的(如果使用相关性)来执行以下操作:

a = imread('image_1.jpg');
b = imread('image_2.jpg');
c = corr2(a,b);          
if c==1
disp('The images are same')

问题在于上述情况仅适用于将完全相同的图像与自身进行比较时,任何其他看起来相似的图像都不起作用。我怎么解决这个问题。谢谢

3 个答案:

答案 0 :(得分:3)

您需要使用函数*xcorr2

答案 1 :(得分:1)

corr2是你的相关函数,它会给出一个值。值越大,匹配就越好。您可以将c的值存储在单独的矩阵C中,并选择具有最大c的对,以获得彼此最接近的两个图像

答案 2 :(得分:0)

标准化您的图片,然后使用conv2代替并找到最大值。对于您可能遇到的注册问题,它会更加慷慨。如果您上传的样本图像与您认为相似且不相似,我们可能会帮助您更好。