Search code examples
c++opencvvisualizationdepth

Visualizing depth image OpenCV


This question is similar to this one, however in this image I only have a subset of pixels with a valid depth and the rest are set to zero.

For example, here is the rgb:

enter image description here

where all the white pixels have no depth (depth value of 0). If I use the method in the linked question, which is:

double min;
double max;
cv::minMaxIdx(map, &min, &max);
cv::Mat adjMap;
cv::convertScaleAbs(map, adjMap, 255 / max);
cv::imshow("Out", adjMap);

I get the following image, from which it is not very clear to see the depth differences:

enter image description here

The min and max depth values on the object are 601 and 654 respectively.


Solution

  • try subtracting the minimum first, then scale to your data range:

    double min;
    double max;
    cv::minMaxIdx(map, &min, &max);
    map -= min;
    cv::Mat adjMap;
    cv::convertScaleAbs(map, adjMap, 255.0 / double(max-min) );
    cv::imshow("Out", adjMap);