@@ -81,6 +81,10 @@ def init_parameters(self):
81
81
self .declare_parameter ('show.overlay' , True )
82
82
self .show_overlay = self .get_parameter ('show.overlay' ).get_parameter_value ().bool_value
83
83
84
+ self .declare_parameter ('show.center' , False )
85
+ self .show_center = self .get_parameter ('show.center' ).get_parameter_value ().bool_value
86
+
87
+
84
88
self .declare_parameter ('show.labels' ,True )
85
89
self .show_labels_on_image = self .get_parameter ('show.labels' ).get_parameter_value ().bool_value
86
90
@@ -94,6 +98,7 @@ def parameters_callback(self):
94
98
self .show_labels_on_image = self .get_parameter ('show.labels' ).get_parameter_value ().bool_value
95
99
self .show_extra_classification_info = self .get_parameter ('show.classification_info' ).get_parameter_value ().bool_value
96
100
self .show_overlay = self .get_parameter ('show.overlay' ).get_parameter_value ().bool_value
101
+ self .show_center = self .get_parameter ('show.center' ).get_parameter_value ().bool_value
97
102
98
103
99
104
@@ -141,6 +146,11 @@ def classify_callback(self):
141
146
self .get_logger ().info ('Found %d bounding boxes (%d ms.)' % (len (res ["result" ]["bounding_boxes" ]), res ['timing' ]['dsp' ] + res ['timing' ]['classification' ]))
142
147
143
148
for bb in res ["result" ]["bounding_boxes" ]:
149
+
150
+ centerX = bb ['x' ]+ int (bb ['width' ]/ 2 )
151
+ centerY = bb ['y' ]+ int (bb ['height' ]/ 2 )
152
+ center = (centerX , centerY )
153
+
144
154
result_msg = Detection2D ()
145
155
result_msg .header .stamp = time_now
146
156
result_msg .header .frame_id = self .frame_id
@@ -149,13 +159,13 @@ def classify_callback(self):
149
159
obj_hyp = ObjectHypothesisWithPose ()
150
160
obj_hyp .id = bb ['label' ] #str(self.ei_classifier.labels.index(bb['label']))
151
161
obj_hyp .score = bb ['value' ]
152
- obj_hyp .pose .pose .position .x = float (bb [ 'x' ] )
153
- obj_hyp .pose .pose .position .y = float (bb [ 'y' ] )
162
+ obj_hyp .pose .pose .position .x = float (centerX )
163
+ obj_hyp .pose .pose .position .y = float (centerY )
154
164
result_msg .results .append (obj_hyp )
155
165
156
166
# bounding box
157
- result_msg .bbox .center .x = float (bb [ 'x' ] )
158
- result_msg .bbox .center .y = float (bb [ 'y' ] )
167
+ result_msg .bbox .center .x = float (centerX )
168
+ result_msg .bbox .center .y = float (centerY )
159
169
result_msg .bbox .size_x = float (bb ['width' ])
160
170
result_msg .bbox .size_y = float (bb ['height' ])
161
171
@@ -170,6 +180,11 @@ def classify_callback(self):
170
180
if self .show_labels_on_image :
171
181
composed_label = bb ['label' ]+ ' ' + str (round (bb ['value' ],2 ))
172
182
img_res = cv2 .putText (img_res , composed_label , (bb ['x' ], bb ['y' ]- 5 ), cv2 .FONT_HERSHEY_SIMPLEX , 0.4 , (255 ,0 ,0 ),1 )
183
+ if self .show_center :
184
+ img_res = cv2 .circle (img_res , center , 3 , (255 , 0 , 0 ), 1 )
185
+ composed_center = '(' + str (centerX )+ ',' + str (centerY )+ ')'
186
+ img_res = cv2 .putText (img_res , composed_center , (centerX , centerY - 5 ), cv2 .FONT_HERSHEY_SIMPLEX , 0.4 , (255 ,0 ,0 ),1 )
187
+
173
188
174
189
cropped = cv2 .cvtColor (cropped , cv2 .COLOR_RGB2BGR )
175
190
0 commit comments