@@ -52,18 +52,23 @@ void D2CViewer::messageCallback(const sensor_msgs::msg::Image::ConstSharedPtr& r
5252 rgb_msg->height , depth_msg->width , depth_msg->height );
5353 return ;
5454 }
55- auto rgb_encode = (rgb_msg->step == 5760 ) ? sensor_msgs::image_encodings::RGB8 : sensor_msgs::image_encodings::RGBA8;
55+ auto rgb_encode = (rgb_msg->step == 5760 ) ? sensor_msgs::image_encodings::RGB8
56+ : sensor_msgs::image_encodings::RGBA8;
5657 auto gray_type = (rgb_msg->step == 5760 ) ? cv::COLOR_GRAY2RGB : cv::COLOR_GRAY2RGBA;
5758 auto rgb_img_ptr = cv_bridge::toCvCopy (rgb_msg, rgb_encode);
5859 auto depth_img_ptr = cv_bridge::toCvCopy (depth_msg, sensor_msgs::image_encodings::TYPE_16UC1);
5960 cv::Mat gray_depth, depth_img, d2c_img;
6061 depth_img_ptr->image .convertTo (gray_depth, CV_8UC1);
6162 cv::cvtColor (gray_depth, depth_img, gray_type);
62- depth_img.setTo (cv::Scalar (255 , 255 , 0 ), depth_img);
63+ depth_img.setTo (cv::Scalar (255 , 255 , 0 ), depth_img);
6364 cv::bitwise_or (rgb_img_ptr->image , depth_img, d2c_img);
6465 sensor_msgs::msg::Image::SharedPtr d2c_msg =
6566 cv_bridge::CvImage (std_msgs::msg::Header (), rgb_encode, d2c_img).toImageMsg ();
66- d2c_msg->header = rgb_msg->header ;
67- d2c_viewer_pub_->publish (*d2c_msg);
67+ if (d2c_msg != nullptr ) {
68+ d2c_msg->header = rgb_msg->header ;
69+ d2c_viewer_pub_->publish (*d2c_msg);
70+ }else {
71+ RCLCPP_ERROR (logger_, " -----------------------d2c_viewer publishing failed-----------------------" );
72+ }
6873}
6974} // namespace orbbec_camera
0 commit comments