def parse_depth(depth, mod='F'): # Filter nan/inf: (-inf, inf, nan)->0 #np.seterr(divide='ignore', invalid='ignore') # right = CvBridge().imgmsg_to_cv2(rgb, 'bgr8') depth = CvBridge().imgmsg_to_cv2(depth, '32FC1') depth = np.where(abs(depth) < np.inf, depth, 0) if 'F' in mod: return depth # float, meters # np.astype('uint8') can also filter nan/inf return (depth / depth.max() * 255).astype('uint8')