Hey everyone
I have been playing a bit with the kinect camera using the openni driver. When running openni_node.launch and viewing the rgb image using rviz, then everything looks perfect, but when I create a node that has to the purpose to read the rgb image, convert it to a cv image and displaying it using imshow, then the colours are all wrong. Red is blue, blue is red, green is something yellow and yellow is light blue. I have been trying to use RGB8 and BGR8 encodings, but nether of them shows any difference. A sample of my code is shown below, inspired from the example in the cv_bridge tutorial:
void processRGB::processImage( const sensor_msgs::Image::ConstPtr& img ) {
CvImagePtr cv_ptr;
try {
cv_ptr = toCvCopy(img, enc::BGR8); //enc::RGB8 also used
} catch (cv_bridge::Exception& e) {
ROS_ERROR("cv_bridge exception: %s", e.what());
return;
}
imshow("Kinect RGB image", cv_ptr->image);
waitKey(3);
}
Does anyone know what might cause this problem? I am using the newest version of Diamondback.
Regards
Sebastian Aslund
Originally posted by Aslund on ROS Answers with karma: 289 on 2011-03-05
Post score: 1
Original comments
Comment by fergs on 2011-03-05:
What image topic are you subscribed to?