如何利用MATLAB实现图像的线性相关比较

如何利用MATLAB实现图像的线性相关比较,matlab,compare,correlation,Matlab,Compare,Correlation,目前,我被要求将某些图像相互比较(使用嵌套for循环),并通过使用线性相关或convulion确定哪些图像彼此最接近(不完全相同),以及最不同的两个图像 由于所有图像都是具有完全相同尺寸的2D矩阵,我现在唯一能想到的是(如果使用相关性)执行以下操作: a = imread('image_1.jpg'); b = imread('image_2.jpg'); c = corr2(a,b); if c==1 disp('The images are same') 问题是,上述方

目前,我被要求将某些图像相互比较(使用嵌套for循环),并通过使用线性相关或convulion确定哪些图像彼此最接近(不完全相同),以及最不同的两个图像

由于所有图像都是具有完全相同尺寸的2D矩阵,我现在唯一能想到的是(如果使用相关性)执行以下操作:

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

问题是,上述方法仅在将完全相同的图像与其自身进行比较时有效,而任何其他看起来相似的图像都不起作用。我怎样才能解决这个问题。谢谢

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

corr2是您的相关函数,将给出一个值。值越大,匹配效果越好。您可以将c的值存储在单独的矩阵c中,并选择c最大的一对,以获得彼此最接近的两个图像,然后使用
conv2
对图像进行规格化,并找到最大值。这将是更慷慨的注册问题,你可能有。如果你上传了你认为相似和不相似的样本图像,我们也许能更好地帮助你。

规范你的图像,然后使用<代码> Valu2,找到最大值。这将是更慷慨的注册问题,你可能有。如果你上传了你认为相似和不相似的示例图像,我们也许能更好地帮助你。

< P>你需要使用函数<代码> *XCORR2。

< P>你需要使用函数<代码> *XCORR2