(self, e)
| 216 | # callback for send button pushing event |
| 217 | # sends faces to a ROS node |
| 218 | def sendButtonCallback(self, e): |
| 219 | if len(self.face_widgets) == 0: |
| 220 | self.setProgress(0, 'no faces are registered') |
| 221 | return |
| 222 | |
| 223 | if self.embedding is None: |
| 224 | self.setProgress(25, 'loading the network model', 10) |
| 225 | self.embedding = OpenFaceEmbedding(self.image_dim_for_openface, self.shape_predictor_path, self.network_path) |
| 226 | |
| 227 | self.setProgress(50, 'sending the faces', 1000) |
| 228 | bridge = CvBridge() |
| 229 | set_predefined_faces = rospy.ServiceProxy('/face_recognition/set_predefined_faces', OPTSetPredefinedFaces) |
| 230 | req = OPTSetPredefinedFacesRequest() |
| 231 | for face_widget in self.face_widgets: |
| 232 | req.names.append(face_widget.name) |
| 233 | req.faces.append(bridge.cv2_to_imgmsg(face_widget.img)) |
| 234 | vec = self.embedding.embed(face_widget.img) |
| 235 | req.features.append(self.vector2multiarray(vec)) |
| 236 | |
| 237 | try: |
| 238 | set_predefined_faces(req) |
| 239 | except: |
| 240 | self.setProgress(0, 'service unavailable') |
| 241 | return |
| 242 | |
| 243 | self.setProgress(100, 'done') |
| 244 | print 'sent images to the face reocognition node' |
| 245 | |
| 246 | # reads an image from the url |
| 247 | # url : the location to the image (string, like 'http://www.*.jpg' or 'file:///home/*/.jpg' |
nothing calls this directly
no test coverage detected