title: OpenCV C++: how access pixel value CV_32F through uchar data pointer
body: <p>Briefly, I would like to know if it is possible to directly access pixel value
  of a CV_32F Mat, through Mat member "uchar* data".</p>
  
  <p>I can do it with no problem if Mat is CV_8U, for example:</p>
  
  <pre><code>// a matrix 5 columns and 6 rows, values in [0,255], all elements initialised at 12
  cv:Mat A;
  A.create(5,6, CV_8UC1);
  A = cv::Scalar(12);
  
  //here I successfully access to pixel [4,5]
  uchar *p = A.data;
  int value = (uchar) p[4*A.step + 5];
  </code></pre>
  
  <p>The problem is when I try to do the same operation with the following matrix,</p>
  
  <pre><code>// a matrix 5 columns, 6 rows, values in [0.0, 1.0], all elements initialised at 1.2
  cv::Mat B;
  B.create(5,6, CV_32FC1);
  B = cv::Scalar(1.2);
  
  //this clearly does not work, no syntax error but erroneous value reported!
  uchar *p = B.data;  
  float value = (float) p[4*B.step + 5];
  
  //this works, but it is not what I want to do!
  float value = B.at&lt;float&gt;(4,5);
  </code></pre>
  
  <p>Thanks a lot, Valerio</p>