我当前被要求比较某些图像(使用嵌套for循环)并确定哪些图像彼此最接近(不是特别完全相同)和2个最不同的图像,或者使用线性相关或者是愚蠢的。
由于所有图像都是具有完全相同尺寸的二维基质,我现在唯一可以提出的(如果使用相关性)来执行以下操作:
a = imread('image_1.jpg');
b = imread('image_2.jpg');
c = corr2(a,b);
if c==1
disp('The images are same')
问题在于上述情况仅适用于将完全相同的图像与自身进行比较时,任何其他看起来相似的图像都不起作用。我怎么解决这个问题。谢谢
答案 0 :(得分:3)
您需要使用函数*xcorr2
。
答案 1 :(得分:1)
corr2是你的相关函数,它会给出一个值。值越大,匹配就越好。您可以将c的值存储在单独的矩阵C中,并选择具有最大c的对,以获得彼此最接近的两个图像
答案 2 :(得分:0)
标准化您的图片,然后使用conv2
代替并找到最大值。对于您可能遇到的注册问题,它会更加慷慨。如果您上传的样本图像与您认为相似且不相似,我们可能会帮助您更好。