title: What's the difference between getAffineTransform(), getPerspectiveTransform() and findHomography()
body: <p>I'm investigating ways of transforming an image and overlaying it within a contour of another image.</p>
  
  <p>As best as I can tell there are three ways to do this with OpenCV in Python:</p>
  
  <ol>
  <li><code>getAffineTransform()</code></li>
  <li><code>getPerspectiveTransform()</code></li>
  <li><code>findHomography()</code></li>
  </ol>
  
  <p>I found three different methods via blog and SO posts and they all produce the same results, i.e. taking a source image and warping/overlaying on a contour of a different shape on a destination image.</p>
  
  <p>This demonstrates <code>getAffineTransform()</code> <a href="https://stackoverflow.com/a/38323528/1887261">https://stackoverflow.com/a/38323528/1887261</a></p>
  
  <p>This demonstrates <code>getPerspectiveTransform()</code>  <a href="http://uberhip.com/python/image-processing/opencv/2014/10/26/warping-brien/" rel="noreferrer">http://uberhip.com/python/image-processing/opencv/2014/10/26/warping-brien/</a></p>
  
  <p>This demonstrates <code>findHomography()</code> <a href="http://www.learnopencv.com/homography-examples-using-opencv-python-c/#download" rel="noreferrer">http://www.learnopencv.com/homography-examples-using-opencv-python-c/#download</a></p>
  
  <p>I'm wondering what is the best method to use and why would you use one over the other? </p>