Hi Chriss,
You can do:
bridge[2].fromImage(disparity_msg->image, "passthrough");
IplImage* dispImg = bridge[2].toIpl();
These methods are deprecated, but currently the easiest way to do what you want.
-Patrick
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?
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users