title: Difference between cvMat, Mat and IpImage
body: <p>I'm trying to discover opencv library at the moment, but it seems a bit messy with the data structures. so there's <code>cv::Mat</code>, <code>cvMat</code> and <code>IpImage</code>, and different examples to each. 
  I understand that there has been a migration for opencv from C to C++, and then major changes done to version 2.4.<br>
  So which one of these data structure is recommended, and generally are there any documentation like an opencv programmers guide explaining the recommended data structure and how this code migration happened (I'm not asking about the code api or the tutorials page) </p>
  
  <p>Many thanks</p>