[ros-users] cvbridge conversion failure

Chriss Lei lei.chriss at gmail.com
Thu May 20 02:09:32 UTC 2010


Hello.

I'm subscribing to three topics and trying to extract image part of
DisparityImageConstPtr message and convert it to IplImage.

Here's the callback function I'm using.

    void callback(const sensor_msgs::CameraInfo::ConstPtr& info,
                const sensor_msgs::ImageConstPtr& left,
                const stereo_msgs::DisparityImageConstPtr& disparity_msg)
    {
        K_intrinsic[0] = info->K[0];
        ROS_INFO("fx [%f]", K_intrinsic[0]);

        cerr << "f: " << disparity_msg->f << " , T: " << disparity_msg->T <<
endl;

        IplImage* im_left = bridge[1].imgMsgToCv(left, "passthrough");

        //const sensor_msgs::Image& disp = (disparity_msg->image);
        //const sensor_msgs::ImageConstPtr& dispPtr = disp;

        IplImage* dispImg = bridge[2].imgMsgToCv(disparity_msg->image,
"passthrough");

        cvShowImage("left", im_left);

    }

Subscribing works fine (I can see the rectified image displayed) but I'm
having a difficult time extracting the image member of the
DisparityImageConstPtr message.

I have to following error:

/home/lei/ros/stacks/poseEstimation/src/vizDepthMap.cpp:79: error: no
matching function for call to ‘sensor_msgs::CvBridge::imgMsgToCv(const
sensor_msgs::Image&, const char [12])’
/home/lei/ros/stacks/vision_opencv/cv_bridge/include/cv_bridge/CvBridge.h:424:
note: candidates are: IplImage*
sensor_msgs::CvBridge::imgMsgToCv(boost::shared_ptr<const
sensor_msgs::Image>, std::string)


It seems like there's an error from cvbridge expecting ImageConstPtr as
input but I'm supplying Image type.

Is there a way to extract and convert the disparity image from the
DisparityImageConstPtr message?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20100519/e3e23bb4/attachment-0002.html>


More information about the ros-users mailing list