如何使用卷积查找图像的相同部分

时间:2016-04-21 13:55:00

标签: image matlab image-processing crop

我有一个功能,旨在裁剪图像的一部分,并使用conv2在主图片中找到裁剪的部分。据我所知,在两个矩阵上使用卷积时,得到的矩阵中的最大值坐标显示矩阵的类似部分。 我的问题是x,y没有表明真正的观点。

function [  ] = cropImage( fileIn)
    im=imread(fileIn);
    [r c]=size(im);
    crop=imcrop(im);

    figure(1)
    subplot(2,2,1)
    imshow(im)
    subplot(2,2,2)
    imshow(crop)

    d=conv2(double(im),double(crop);
    m=max(d);
    m=max(m);
    [x y]=find(d==m);     

    subplot(2,2,4)
    imshow(d)

    text(x,y,'+','color','r');    
    subplot(2,2,1)

    text(x,y,'+','color','r');    
end

1 个答案:

答案 0 :(得分:7)

卷积不会给出具有最大相似性的点,相关(或互相关)是您正在寻找的运算符。更具体地说,matlab已经为2d图像实现了normalized cross-correlation

>>> c = normxcorr2(template, image);
>>> [ypeak, xpeak] = find(c==max(c(:)));

相关是卷积运算符的180度旋转。