3 #ifndef IMAGE_PROCESSING_NODELET_H_ 4 #define IMAGE_PROCESSING_NODELET_H_ 8 #include <sensor_msgs/Image.h> 9 #include <sensor_msgs/CameraInfo.h> 12 #include <opencv2/opencv.hpp> 14 #include <std_srvs/Empty.h> 15 #include <std_msgs/Empty.h> 16 #if ( CV_MAJOR_VERSION >= 4) 17 #include <opencv2/imgproc/imgproc_c.h> 20 #include <boost/thread/mutex.hpp> 21 #include <boost/foreach.hpp> 22 #include <boost/circular_buffer.hpp> 23 #include <boost/lambda/lambda.hpp> 26 #include <dynamic_reconfigure/server.h> 86 in_times(
boost::circular_buffer<double>(100)),
87 out_times(
boost::circular_buffer<double>(100)),
88 in_bytes(
boost::circular_buffer<double>(100)),
89 out_bytes(
boost::circular_buffer<double>(100)),
95 virtual void process(
const sensor_msgs::ImageConstPtr &src_img,
const sensor_msgs::CameraInfoConstPtr &src_info,
96 sensor_msgs::ImagePtr &dst_img, sensor_msgs::CameraInfo &dst_info) = 0;
101 std_srvs::Empty::Response &res);
103 void image_cb(
const sensor_msgs::ImageConstPtr &
img);
104 void info_cb(
const sensor_msgs::CameraInfoConstPtr &info);
106 void callback(
const sensor_msgs::ImageConstPtr &img,
107 const sensor_msgs::CameraInfoConstPtr &info);
sensor_msgs::CameraInfoConstPtr info_msg_
ros::Subscriber image_sub_
bool use_camera_subscriber_
void callback(const sensor_msgs::ImageConstPtr &img, const sensor_msgs::CameraInfoConstPtr &info)
jsk_topic_tools::VitalChecker::Ptr info_vital_
boost::circular_buffer< double > in_times
virtual void unsubscribe()
bool snapshot_srv_cb(std_srvs::Empty::Request &req, std_srvs::Empty::Response &res)
virtual void process(const sensor_msgs::ImageConstPtr &src_img, const sensor_msgs::CameraInfoConstPtr &src_info, sensor_msgs::ImagePtr &dst_img, sensor_msgs::CameraInfo &dst_info)=0
void initPublishersAndSubscribers()
void image_nonsync_cb(const sensor_msgs::ImageConstPtr &img)
ros::Publisher height_scale_pub_
ros::Time last_publish_time_
void info_cb(const sensor_msgs::CameraInfoConstPtr &info)
ros::Time last_subscribe_time_
boost::circular_buffer< double > out_times
boost::circular_buffer< double > in_bytes
jsk_topic_tools::VitalChecker::Ptr image_vital_
void image_cb(const sensor_msgs::ImageConstPtr &img)
image_transport::Subscriber image_nonsync_sub_
virtual void updateDiagnostic(diagnostic_updater::DiagnosticStatusWrapper &stat)
ros::Publisher width_scale_pub_
void snapshot_msg_cb(const std_msgs::EmptyConstPtr msg)
jsk_topic_tools::TimeredDiagnosticUpdater::Ptr diagnostic_updater_
boost::circular_buffer< double > out_bytes
ros::Time last_rosinfo_time_
ros::Subscriber camera_info_sub_
image_transport::CameraPublisher cp_
image_transport::ImageTransport * it_
ros::Publisher image_pub_
image_transport::CameraSubscriber cs_