feature0d_to_image.h
Go to the documentation of this file.
1 // -*- mode: c++ -*-
2 /*********************************************************************
3  * Software License Agreement (BSD License)
4  *
5  * Copyright (c) 2015, JSK Lab
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * * Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  * * Redistributions in binary form must reproduce the above
15  * copyright notice, this list of conditions and the following
16  * disclaimer in the documentation and/o2r other materials provided
17  * with the distribution.
18  * * Neither the name of the JSK Lab nor the names of its
19  * contributors may be used to endorse or promote products derived
20  * from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGE.
34  *********************************************************************/
35 
36 
37 #ifndef POSEDETECTION_MSGS_FEATURE0D_TO_IMAGE_H_
38 #define POSEDETECTION_MSGS_FEATURE0D_TO_IMAGE_H_
39 
40 #include <ros/node_handle.h>
41 #include <sensor_msgs/Image.h>
42 #include <posedetection_msgs/ImageFeature0D.h>
43 
44 #include <opencv/cv.hpp>
45 #include <opencv2/highgui/highgui.hpp>
46 #include <boost/shared_ptr.hpp>
47 
52 
54 {
55  cv::Mat draw_features(const cv::Mat src,
56  const std::vector<float> positions,
57  const std::vector<float> scales,
58  const std::vector<float> orientations)
59  {
60  cv::Mat dst;
61  src.copyTo(dst);
62  for(size_t i = 0; i < positions.size()/2; ++i) {
63  float scale = i < scales.size() ? scales[i] : 10.0;
64  cv::Point center = cv::Point(positions[2*i+0], positions[2*i+1]);
65  cv::circle(dst, center, scale, CV_RGB(0,255,0));
66  if( i < orientations.size() ) {
67  // draw line indicating orientation
68  cv::Point end_pt = cv::Point(center.x+std::cos(orientations[i])*scale,
69  center.y+std::sin(orientations[i])*scale);
70  cv::line(dst, center, end_pt, CV_RGB(255,0,0));
71  }
72  }
73  return dst;
74  }
75 
77  {
78  public:
83  sensor_msgs::Image,
84  posedetection_msgs::Feature0D
89 
91  virtual ~Feature0DToImage();
92  void imagefeature_cb(const posedetection_msgs::ImageFeature0DConstPtr& msg_ptr);
93  void imagefeature_cb(const sensor_msgs::ImageConstPtr& image_msg,
94  const posedetection_msgs::Feature0DConstPtr& feature_msg);
95  };
96 }
97 
98 #endif
message_filters::Subscriber< posedetection_msgs::Feature0D > _sub_feature
void imagefeature_cb(const posedetection_msgs::ImageFeature0DConstPtr &msg_ptr)
boost::shared_ptr< message_filters::Synchronizer< SyncPolicy > > _sync
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


posedetection_msgs
Author(s): Rosen Diankov
autogenerated on Wed Jun 5 2019 20:44:18