title: (opencv) imread with CV_LOAD_IMAGE_GRAYSCALE yields a 4 channels Mat
body: <p>The following code reads an image from a file into a <code>cv::Mat</code> object.</p>
  
  <pre><code>#include &lt;string&gt;
  
  #include &lt;opencv2/opencv.hpp&gt;
  
  cv::Mat load_image(std::string img_path)
  {
    cv::Mat img = cv::imread(img_path, CV_LOAD_IMAGE_GRAYSCALE);
    cv::Scalar intensity = img.at&lt;uchar&gt;(0, 0);
    std::cout &lt;&lt; intensity &lt;&lt; std::endl;
    return img;
  }
  </code></pre>
  
  <p>I would expect the <code>cv::Mat</code> to have only one channel (namely, the intensity of the image) but it has 4.</p>
  
  <pre><code>$ ./test_load_image
  [164, 0, 0, 0]
  </code></pre>
  
  <p>I also tried converting the image with</p>
  
  <pre><code>cv::Mat gray(img.size(), CV_8UC1);
  img.convertTo(gray, CV_8UC1);
  </code></pre>
  
  <p>but the <code>gray</code> matrix is also a 4 channels one.</p>
  
  <p>I'd like to know if it's possible to have a single channel <code>cv::Mat</code>. Intuitively, that's what I would expect to have when dealing with a grayscale (thus, single channel) image.</p>