title: Using OpenCV to recognise similar (not completely identical) simple images?
body: <p>Say I have a very simple image or shape such as this stick man drawing:</p>
  
  <p><img src="https://i.stack.imgur.com/dcSTy.png" alt="enter image description here"></p>
  
  <p>I also have a library of other simple images which I want to compare the first image to and determine the closest match:</p>
  
  <p><img src="https://i.stack.imgur.com/bskxE.png" alt="enter image description here"></p>
  
  <p>Notice that the two stick men are not completely identical but are reasonably similar. </p>
  
  <p>I want to be able to compare the first image to each image in my library until a reasonably close match is found. If necessary, my image library could contain numerous variations of the same image in order to help decide which type of image I have. For example:</p>
  
  <p><img src="https://i.stack.imgur.com/Vx4tc.png" alt="enter image description here"></p>
  
  <p>My question is whether this is something that OpenCV would be capable of? Has it been done before, and if so, can you point me in the direction of some examples? Many thanks for your help.</p>
  
  <p><em>Edit</em>: Through my searches I have found many examples of people who are comparing images, or even people that are comparing images which have been stretched or skewed such as this: <a href="https://stackoverflow.com/questions/11541154/checking-images-for-similarity-with-opencv">Checking images for similarity with OpenCV</a> . Unfortunately as you can see, my images are not just translated (Rotated/Skewed/Stretched) versions of one another - They actually different images although they are very similar.</p>