5 #include <cv_bridge/cv_bridge.h>
6 #include <message_filters/synchronizer.h>
7 #include <message_filters/subscriber.h>
8 #include <message_filters/sync_policies/approximate_time.h>
9 #include <sensor_msgs/Image.h>
10 #include <sensor_msgs/image_encodings.h>
11 #include <image_geometry/pinhole_camera_model.h>
50 cam_model_ = image_geometry::PinholeCameraModel();
65 ROS_ERROR_NAMED(
"ClientROS",
"CameraInfo should unsubsribe after inititializing the camera model");
75 ROS_ERROR_DELAYED_THROTTLE_NAMED(1,
"ClientROS",
"ClientROSBase: cam_model not yet initialized");
78 cv_bridge::CvImagePtr rgb_img_ptr, depth_img_ptr;
83 rgb_img_ptr = cv_bridge::toCvCopy(rgb_image_msg, sensor_msgs::image_encodings::BGR8);
85 catch (cv_bridge::Exception& e)
87 ROS_ERROR_NAMED(
"ClientROS",
"ClientROSBase: Could not deserialize rgb image: %s", e.what());
95 depth_img_ptr = cv_bridge::toCvCopy(depth_image_msg, depth_image_msg->encoding);
97 if (depth_image_msg->encoding == sensor_msgs::image_encodings::TYPE_16UC1)
100 cv::Mat depth_image(depth_img_ptr->image.rows, depth_img_ptr->image.cols, CV_32FC1);
101 for(
int x = 0; x < depth_image.cols; ++x)
103 for(
int y = 0; y < depth_image.rows; ++y)
105 depth_image.at<
float>(y, x) =
static_cast<float>(depth_img_ptr->image.at<
unsigned short>(y, x)) / 1000;
109 depth_img_ptr->image = depth_image;
113 catch (cv_bridge::Exception& e)
115 ROS_ERROR_NAMED(
"ClientROS",
"ClientROSBase: Could not deserialize depth image: %s", e.what());