def _learn_face_srv(self, req):
try:
bgr_image = self._bridge.imgmsg_to_cv2(req.image, "bgr8")
except CvBridgeError as e:
error_msg = "Could not convert to opencv image: %s" % e
rospy.logerr(error_msg)
return {"error_msg": error_msg}
now = datetime.now()
cv2.imwrite("%s/%s_learn_%s.jpeg" % (self._storage_folder, now.strftime("%Y-%m-%d-%H-%M-%S-%f"), req.name), bgr_image)
try:
rep = self._get_rep(bgr_image)
except Exception as e:
error_msg = "Could not get representation of face image: %s" % e
rospy.logerr(error_msg)
return {"error_msg": error_msg}
if req.name not in self._face_dict:
self._face_dict[req.name] = []
self._face_dict[req.name].append(rep)
rospy.loginfo("Succesfully learned face of '%s'" % req.name)
# from http://www.diveintopython3.net/serializing.html
if ( self._face_dict_filename != '' ):
with open( self._face_dict_filename, 'wb' ) as f:
pickle.dump( self._face_dict, f );
print "wrote _face_dict: %s" % self._face_dict_filename
return {"error_msg": ""}
评论列表
文章目录