Improve depth map quality

asked 2016-03-02 07:58:13 -0600

aless.mosca gravatar image

updated 2016-03-02 08:01:28 -0600

Hello all, I'm approaching to the ComputerVision and to OpenCV in these months. What I'm doing is create a stereo camera in order to obtain informations about an object (a cilindere more or less, with 4 cm of diameter and 8 cm height ) which should be manipulated by a robot. So through the depth map I would like to obtain the 3D position of the object. But first to do this, I would like to obtain a decent real time depth map. What I did is following the example contained in to the examples folder of Emgucv(i'm doing it in C#). there are few questions that I would to propose you:

  • How can I be sure that the calibration process was good or not
  • For computing the depth map I use the Semi Global Block Matching approach (StereoSGBM method), should I make some pre and/or post filtering to improve the quality of my depth map.

Below, a picture of my actual depth map

image description

Thanks in advance

edit retag flag offensive close merge delete


  • stereoCalibrate() returns an rms. this should be as small as possible, say, < 0.5.

  • post-filtering the depth map seems quite common, e.g. inpaint() to remove "holes"

berak gravatar imageberak ( 2016-03-02 08:05:12 -0600 )edit

thanks for answering me. Since I'm using emgucv, the function cvInvoke.StereoCalibrate is a void function.

aless.mosca gravatar imagealess.mosca ( 2016-03-02 08:22:56 -0600 )edit

sad to hear that.

unfortunately, we can't help at all with emgu specific things

berak gravatar imageberak ( 2016-03-02 08:26:55 -0600 )edit

coould you suggest me any kind of post processing, please? Thanks

aless.mosca gravatar imagealess.mosca ( 2016-03-02 09:42:12 -0600 )edit

Hi. I just wanted to say that cvInvoke.StereoCalibrate is not a void function according to the documentation ( It should return a double.

Edit: just tried. It does not return a double. The return type is indeed void.

flaming gravatar imageflaming ( 2016-06-16 10:53:10 -0600 )edit