While we are studying on image processing ,we have started 
to find interest points on images.After that we are studying on matching
 the interest points between two almost same images.First of all we have
 two images.It includes nearly same view on same viewpoint.Basic idea is
 that finding the interest points on the images and matching them .
        
 There is a result of this process.It gives us nearly correct matches.We
 worked on vl feat open source library which implements popular computer
 vision algorithms including HOG, SIFT, MSER, k-means, hierarchical 
k-means, agglomerative information bottleneck, SLIC superpixels, and 
quick shift. It is written in C for efficiency and compatibility, with 
interfaces in MATLAB for ease of use, and detailed documentation 
throughout. It supports Windows, Mac OS X, and Linux.
         But
 there is a problem here because your images can be different size or 
high quality so that you change the code lines like that:
on vl_demo_covdet.m;
         % vl_imarraysc(reshape(patches(:,1:10*10), w,w,[])) ;
         vl_imarraysc(reshape(patches(:,1:size(frames,2)), w,w,[])) ;
Then if your image has high quality you can resize images;
         imresize(image,1/3.0,'bicubic');
            
             But there are different images.There is puzzle box while you can see 
top of the box at first image,you can see bottom of the box at second 
image and the back ground is a carpet.As a result of the matching 
process,we can see  the program has matched the carpet pattern on 
images.We can not say the matching process is totally wrong but ıt has 
trick point.the pattern  is same all over the carpet so that program 
finds the interest points and matches them.but this images can be 
located different places on it. there  is an example for this situation: