def hysteresis_thresholding(probs: np.array, candidates: np.array, low_threshold: float, high_threshold: float):
low_mask = candidates & (probs > low_threshold)
# Connected components extraction
label_components, count = label(low_mask, np.ones((3, 3)))
# Keep components with high threshold elements
good_labels = np.unique(label_components[low_mask & (probs > high_threshold)])
label_masks = np.zeros((count + 1,), bool)
label_masks[good_labels] = 1
return label_masks[label_components]
评论列表
文章目录