title: How to convert floating point image to 32bit single channel in OpenCv?
body: <p>I'm doing a watershed segmentation and the marker image is derived from the source image put through a distance transform. The distance transform returns a floating point image (I have no idea about the bit-depth) and I have trouble putting it through the watershed method since it requires a 32 bit single channel image.</p>
  
  <p>Can I use the mat's convertTo method to set the bit depth to 32? 
  I also have trouble trying to display the floating point image since the matToBitmap() method doesn't seem to accept them. (in Android)</p>
  
  <pre><code>Mat mImg = new Mat();
  Mat mThresh = new Mat();
  Mat mDist = new Mat();
  
  ImageView imgView = (ImageView) findViewById(R.id.imageView);
  Bitmap bmpIn = BitmapFactory.decodeResource(getResources(),
          R.drawable.w1);
  
  Utils.bitmapToMat(bmpIn, mImg);
  
  Imgproc.cvtColor(mImg, mImg, Imgproc.COLOR_BGR2GRAY);
  Imgproc.threshold(mImg, mThresh, 0, 255, Imgproc.THRESH_BINARY
          | Imgproc.THRESH_OTSU); 
  
  //Marker image for watershed
  Imgproc.distanceTransform(mThresh, mDist, Imgproc.CV_DIST_L2, Imgproc.CV_DIST_MASK_PRECISE);
  
  //Conversions for watershed
  Imgproc.cvtColor(mThresh, mThresh, Imgproc.COLOR_GRAY2BGR, 3);
  
  //Floating-point image -&gt; 32-bit single-channel
  mDist.convertTo(...);
  
  Imgproc.watershed(mThresh, mDist); //
  
  Bitmap bmpOut = Bitmap.createBitmap(mThresh.cols(), mThresh.rows(),
          Bitmap.Config.ARGB_8888);       
  
  
  Utils.matToBitmap(mThresh, bmpOut);
  imgView.setImageBitmap(bmpOut);
  </code></pre>