00001 #include <ros/ros.h> 00002 #include <image_transport/image_transport.h> 00003 #include <opencv/cv.h> 00004 #include <opencv/highgui.h> 00005 #include <cv_bridge/CvBridge.h> 00006 00007 std::string win_name = "El-e Carrriage"; 00008 //std::string win_name = "El-e in-hand Camera"; 00009 00010 void imageCallback(const sensor_msgs::ImageConstPtr& msg) 00011 { 00012 sensor_msgs::CvBridge bridge; 00013 try 00014 { 00015 cvShowImage(win_name.c_str(), bridge.imgMsgToCv(msg, "rgb8")); 00016 } 00017 catch (sensor_msgs::CvBridgeException& e) 00018 { 00019 ROS_ERROR("Could not convert from '%s' to 'rgb8'.", msg->encoding.c_str()); 00020 } 00021 } 00022 00023 int main(int argc, char **argv) 00024 { 00025 ros::init(argc, argv, "theora_listener"); 00026 ros::NodeHandle nh; 00027 cvNamedWindow(win_name.c_str()); 00028 cvStartWindowThread(); 00029 image_transport::ImageTransport it(nh); 00030 image_transport::Subscriber sub = it.subscribe("hrl_compressed_img/image", 1, imageCallback); 00031 ros::spin(); 00032 cvDestroyWindow(win_name.c_str()); 00033 } 00034