demos icon indicating copy to clipboard operation
demos copied to clipboard

RGB order flipped when using cam2image with showimage

Open jjd9 opened this issue 2 years ago • 2 comments

Bug report

Required Info:

  • Operating System:
    • Ubuntu 22.04 (Jammy)
  • Installation type:
    • Debian apt install (binaries?)
  • Version or commit hash:
    • ros-iron-image-tools/jammy,now 0.27.0-2jammy.20230429.031022 amd64
  • DDS implementation:
    • tested with Fast-RTPS and RTI Connext
  • Client library (if applicable):
    • rclcpp

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

ros2 run image_tools cam2image --ros-args -p show_camera:=true

In terminal 2, run the showimage executable

ros2 run image_tools showimage

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)

image

Thank you for your time! (-:

jjd9 avatar May 06 '23 16:05 jjd9

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

Yadunund avatar May 09 '23 07:05 Yadunund

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.

EwingKang avatar Mar 04 '24 02:03 EwingKang