[ros-users] Black depth image with kinect_calibration

Raphael Favier raphael.favier at gmail.com
Fri Jan 14 13:26:16 UTC 2011


Hello,

I am trying to calibrate my Kinect today. My only problem is that although
the depth info is properly displayed in the GUI, the saved depth images are
all black.

I tried to hack around acquire_data.cpp in depth_cb(). Something seems fishy
with the image conversion (lines 314 -> 329):

  // convert to cv::Mat for saving
  if (saveDepth)
    {
      cv::Mat img(ROWS,COLS,CV_16UC1);
      uint8_t *imgi = img.ptr<uint8_t>(0);
      uint8_t *rgbi = (uint8_t *)depth;
      memcpy(imgi,rgbi,FREENECT_FRAME_PIX*2);
      char fname[1024];
      sprintf(fname,"%s/img_depth_%02d.png", fdir, depth_num);
      depth_num++;
      if (cv::imwrite(fname,img))
        printf("Wrote depth image %s\n", fname);
      else
        printf("ERROR: failed to write image %s\n", fname);
      saveDepth = false;
    }


I tried to play around with the matrix, pointers types and the memcpy
parameters but my openCV knowlegde being quite low, I cannot figure out how
to get a clean picture.

I tried having a look at the documentation of freekinect (to see what pixel
format to expect for depth) but it hasn't been generated.

Is this problem only happening with me or does anyone has it too?
Any idea how to solve this?

Raph
-- 
View this message in context: http://ros-users.122217.n3.nabble.com/Black-depth-image-with-kinect-calibration-tp2255412p2255412.html
Sent from the ROS-Users mailing list archive at Nabble.com.



More information about the ros-users mailing list