Matlab 模板匹配过程中找到的裁剪图像

Matlab 模板匹配过程中找到的裁剪图像,matlab,image-processing,template-matching,Matlab,Image Processing,Template Matching,我使用模板匹配在MATLAB中找到给定输入图像中的模板图像。因此,它通常在给定输入图像中找到模板图像的区域上形成一个矩形 但如果我的输入图像不包含模板图像,它会在一些随机区域上形成矩形 我想要的是裁剪模板匹配后的图像(即在矩形中找到的图像),以便稍后我可以将其与模板图像进行比较,并检查它们有多相似 以下是我使用的代码: IReal1 = imread('Real_4.jpg'); check1 = imread('check.jpg') ; IReal = rgb2gray(IReal1

我使用模板匹配在MATLAB中找到给定输入图像中的模板图像。因此,它通常在给定输入图像中找到模板图像的区域上形成一个矩形

但如果我的输入图像不包含模板图像,它会在一些随机区域上形成矩形

我想要的是裁剪模板匹配后的图像(即在矩形中找到的图像),以便稍后我可以将其与模板图像进行比较,并检查它们有多相似

以下是我使用的代码:

IReal1 = imread('Real_4.jpg');
check1 = imread('check.jpg') ;    
IReal = rgb2gray(IReal1) ;
check = rgb2gray(check1) ;    
[Ir Ic] = size(IReal) ;
[Tr  Tc] = size(check) ;        
R = normxcorr2(check , IReal);    
R = imcrop(R , [Tc Tr Ic Ir]);        
[r c v] = find(R == (max(max(R)))) ;    
RGB = insertShape(IReal, 'rectangle', [c r Tc Tr], 'Linewidth', 3);
imshow(RGB) ;

您需要为
R
使用最小阈值。例如,类似这样的内容(对不起,我没有时间确切地写出来):
idx=find(R>0.5);[r,c]=ind2sub(大小(r),idx)
问题是
R
将始终有一个最大值,但您发现匹配可能是错误的。显然,您必须为您的应用程序调整
0.5
(较低的值意味着较少的未命中,但更多的误报;较高的值则相反)。

谢谢Sardar Usama的编辑。您可以在副本中遵循此过程。它使用相位相关执行模板匹配,但隔离模板的过程是您要寻找的。