Ask Your Question

Revision history [back]

DepthImage to Mat (OpenCV)

I am working with a 3d camera that provides a depthimage which is encoded in 32FC1 I need the image in OpenCV format (Mat) in order to access each component as a matrix. I am working on a ROS system, so I receive the image in ROS format.

The problem is that when I have done the transformation, I try to access the Matrix data with Mat::at but I can not see real values. I don't know where the problem is.

Here is my code:

cv_bridge::CvImagePtr cv_ptr;
    try{
        cv_ptr = cv_bridge::toCvCopy(pdepth);
    }
    catch (cv_bridge::Exception& e){
        ROS_ERROR("cv_bridge exception: %s", e.what());
        return;
    }

    for(uint col = 0; col < 800; col++){
        float d = 8.0;
        for(uint pix = 0; pix < 300; pix++){
            if (cv_ptr->image.at<float>(pix,col) < 32/(0.45814893-0.001529713*pix)) d = cv_ptr->image.at<float>(pix,col);