我有一个功能,旨在裁剪图像的一部分,并使用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
答案 0 :(得分:7)
卷积不会给出具有最大相似性的点,相关(或互相关)是您正在寻找的运算符。更具体地说,matlab已经为2d图像实现了normalized cross-correlation:
>>> c = normxcorr2(template, image);
>>> [ypeak, xpeak] = find(c==max(c(:)));
相关是卷积运算符的180度旋转。