[ros-users] Convert sensor_msgs/Image to the opencv image

Soonhac Hong soonhac.hong at gmail.com
Sat Nov 20 01:58:02 UTC 2010


Hi Josh,

Using a null deleter and shared_ptr works properly.

Thank you,
Soonhac


On 11/19/2010 01:24 PM, Josh Faust wrote:
> 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 at willowgarage.com 
> <mailto:jfaust at 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 at gmail.com <mailto:soonhac.hong at 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 at code.ros.org <mailto:ros-users at code.ros.org>
>         https://code.ros.org/mailman/listinfo/ros-users
>
>
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>    

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20101119/55bfd9ff/attachment-0003.html>


More information about the ros-users mailing list