title: What is the difference between the fundamental, essential and homography matrices?
body: <p>I have two images that are taken from different positions. The 2nd camera is located to the right, up and backward with respect to 1st camera. </p>
  
  <p><strong>So I think there is a perspective transformation between the two views and not just an affine transform since cameras are at relatively different depths</strong>. Am I right? </p>
  
  <p>I have a few corresponding points between the two images. I think of using these corresponding points to determine the transformation of each pixel from the 1st to the 2nd image.</p>
  
  <p>I am confused by the functions <a href="http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#findfundamentalmat" rel="noreferrer">findFundamentalMat</a> and <a href="http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#findfundamentalmat" rel="noreferrer">findHomography</a>. Both return a 3x3 matrix. <strong>What is the difference between the two?</strong> </p>
  
  <p>Is there any condition required/prerequisite to use them (when to use them)? </p>
  
  <p>Which one to use to transform points from 1st image to 2nd image? In the 3x3 matrices, which the functions return, do they include the rotation and translation between the two image frames?</p>
  
  <p>From <a href="http://en.wikipedia.org/wiki/Fundamental_matrix_%28computer_vision%29" rel="noreferrer">Wikipedia</a>, I read that the fundamental matrix is a relation between corresponding image points. In an SO answer <a href="https://stackoverflow.com/questions/10386382/use-fundamental-matrix-to-compute-coordinates-translation-using-opencv?rq=1">here</a>, it is said the essential matrix E is required to get corresponding points. But I do not have the internal camera matrix to calculate E. I just have the two images.  </p>
  
  <p>How should I proceed to determine the corresponding point?</p>