Open jjd9 opened 1 year ago
I encounter this problem as well. Perhaps the solution is to add a parameter to let users override the encoding in cam2image
/showimage
. Somewhat similar to https://github.com/ros-perception/vision_opencv/pull/505
I encountered a similar problem with the ros2 run image_tools showimage
tool. The source image is a ROS image converted from cv_bridge::CvImage
, with proper "bgr8" desgination. The RVIZ can display the image correctly while the showimage
tool shows reversed R-B channel.
Bug report
Required Info:
Steps to reproduce issue
Open two terminals and source the ros2 space in each (i.e.
source /opt/ros/iron/setup.bash
)In terminal 1, run the cam2image executable
In terminal 2, run the showimage executable
Expected behavior
The image being published and displayed by cam2image matches the image displayed by showimage.
Actual behavior
cam2image reads a BGR image from the camera, publishes it as a CV_U8C3, cv::Mat image, which does not preserve the channel ordering information. showimage receives the image and assumes that since it is a CV_U8C3, cv::Mat, it should convert it from RGB to BGR. But since that is not true, the result is an image whose channel ordering is flipped.
Here is the output I am getting (Left image: cam2image visual, Right image: showimage visual)
Thank you for your time! (-: