37 #ifndef POSEDETECTION_MSGS_FEATURE0D_TO_IMAGE_H_ 38 #define POSEDETECTION_MSGS_FEATURE0D_TO_IMAGE_H_ 41 #include <sensor_msgs/Image.h> 42 #include <posedetection_msgs/ImageFeature0D.h> 44 #include <opencv2/opencv.hpp> 45 #include <opencv2/highgui/highgui.hpp> 46 #include <boost/shared_ptr.hpp> 53 #if BOOST_VERSION < 106000 // since 1.60.0, boost uses placeholders namesapce for _1,_2... 54 #ifndef BOOST_PLAEHOLDERS 55 #define BOOST_PLAEHOLDERS 58 namespace placeholders
60 extern boost::arg<1>
_1;
61 extern boost::arg<2>
_2;
62 extern boost::arg<3>
_3;
63 extern boost::arg<4>
_4;
64 extern boost::arg<5>
_5;
65 extern boost::arg<6>
_6;
66 extern boost::arg<7>
_7;
67 extern boost::arg<8>
_8;
68 extern boost::arg<9>
_9;
71 #endif // BOOST_PLAEHOLDERS 72 #endif // BOOST_VERSION < 106000 77 const std::vector<float> positions,
78 const std::vector<float> scales,
79 const std::vector<float> orientations)
83 for(
size_t i = 0; i < positions.size()/2; ++i) {
84 float scale = i < scales.size() ? scales[i] : 10.0;
85 cv::Point center = cv::Point(positions[2*i+0], positions[2*i+1]);
86 cv::circle(dst, center, scale, CV_RGB(0,255,0));
87 if( i < orientations.size() ) {
89 cv::Point end_pt = cv::Point(center.x+std::cos(orientations[i])*scale,
90 center.y+std::sin(orientations[i])*scale);
91 cv::line(dst, center, end_pt, CV_RGB(255,0,0));
105 posedetection_msgs::Feature0D
113 void imagefeature_cb(
const posedetection_msgs::ImageFeature0DConstPtr& msg_ptr);
114 void imagefeature_cb(
const sensor_msgs::ImageConstPtr& image_msg,
115 const posedetection_msgs::Feature0DConstPtr& feature_msg);
message_filters::Subscriber< posedetection_msgs::Feature0D > _sub_feature
boost::shared_ptr< message_filters::Synchronizer< SyncPolicy > > _sync
ros::Subscriber _sub_imagefeature
cv::Mat draw_features(const cv::Mat src, const std::vector< float > positions, const std::vector< float > scales, const std::vector< float > orientations)
message_filters::sync_policies::ExactTime< sensor_msgs::Image, posedetection_msgs::Feature0D > SyncPolicy
message_filters::Subscriber< sensor_msgs::Image > _sub_image