def label_image_postprocessing(self, image): """ Processes label instance segmentation np arrays. Smoothes the image, if self.label_gaussian_blur_sigma > 0. :param image: The instance segmentation np array. :return: The processed np array. """ channel_axis = self.get_channel_axis(image, self.data_format) if self.label_gaussian_blur_sigma > 0.0: # and self.label_gaussian_blur_sigma != 1.0: images, labels = split_label_image_with_unknown_labels(np.squeeze(image, axis=channel_axis), dtype=np.uint16) gaussians = [0, self.label_gaussian_blur_sigma, self.label_gaussian_blur_sigma] if image.ndim == 4 else [self.label_gaussian_blur_sigma, self.label_gaussian_blur_sigma] images = smooth_label_images(images, gaussians, dtype=np.uint16) image = np.expand_dims(merge_label_images(images, labels), channel_axis) return image
def label_image_postprocessing(self, image): """ Processes label instance segmentation np arrays. Smoothes the image, if self.label_gaussian_blur_sigma > 0. :param image: The instance segmentation np array. :return: The processed np array. """ if self.label_gaussian_blur_sigma > 0: images, labels = split_label_image_with_unknown_labels( image, dtype=np.uint16) images = smooth_label_images(images, self.label_gaussian_blur_sigma, dtype=np.uint16) image = merge_label_images(images, labels) return image
def relabel_seg(seg, tra): seg_label_images, _ = split_label_image_with_unknown_labels(seg) tra_label_images, tra_labels = split_label_image_with_unknown_labels(tra) del tra_label_images[0] del tra_labels[0] new_seg_labels = [0] for i in range(1, len(seg_label_images)): seg_label_image = seg_label_images[i] tra_label_overlap = [ (tra_label, np.sum(np.bitwise_and(seg_label_image == 1, tra_label_image == 1))) for tra_label_image, tra_label in zip(tra_label_images, tra_labels) ] best_tra_label, best_overlap = max(tra_label_overlap, key=lambda x: x[1]) new_seg_labels.append(best_tra_label) assert len( np.unique(new_seg_labels)) == len(new_seg_labels), 'duplicate labels' new_seg = merge_label_images(seg_label_images, new_seg_labels) return new_seg