Ah, but it looks like fromImage is deprecated.  Does anyone know why there's no longer a way of turning a non-shared pointer of a sensor_msgs/Image into a cv image?

In the meantime you could use a null deleter and create a shared_ptr out of the image:

void nullDeleter(void*) {}
boost::shared_ptr<sensor_msgs::Image> image_ptr(&srv.response.left_image, nullDeleter);

Josh

On Fri, Nov 19, 2010 at 1:18 PM, Josh Faust <jfaust@willowgarage.com> wrote:
What was the compile error you got originally?  That's not a valid cast to be making.

There's a version of fromImage that just takes the sensor_msgs/Image -- are you sure that srv.response.left_image is a sensor_msgs/Image?

Josh

On Fri, Nov 19, 2010 at 12:49 PM, Soonhac Hong <soonhac.hong@gmail.com> wrote:
Hi all,

I'm trying to convert sensor_msgs/Image to the opencv image. The
sensor_msgs/Image is defined in the ros service as follows.

<temp_srv.srv>
bool isColor
----
sensor_msgs/Image left_image


The problem has happened at the following code.

IplImage* left_image = bridge_.imgMsgToCv((const
sensor_msgs::ImageConstPtr&) srv.response.left_image, "passthrough");

Without the casting,(const sensor_msgs::ImageConstPtr&), there was an
compile error. With the casting, there is a runtime error, segmentation
fault. Is there anyone to know how to get the
sensor_msgs::ImageConstPtr& of the sensor_msgs/Image which is defined in
the ros service?

I confirmed that there are the proper value of each pixel in the
srv.response.left_image.data[] as well as srv.response.left_image.width
and srv.response.left_image.hight.

Thank you for any comments.

Best,
Soonhac

_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users