From 4b0b342eadfcf17820de758524efd8fbf35073c1 Mon Sep 17 00:00:00 2001 From: Ankit Agrawal Date: Wed, 7 Aug 2013 14:55:32 +0530 Subject: [PATCH] Actively filtering border keypoints on all scales --- skimage/feature/censure.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/skimage/feature/censure.py b/skimage/feature/censure.py index 774250bd..79765ccf 100644 --- a/skimage/feature/censure.py +++ b/skimage/feature/censure.py @@ -204,6 +204,22 @@ def censure_keypoints(image, n_scales=7, mode='DoB', non_max_threshold=0.15, feature_mask[:, :, i] = _suppress_lines(feature_mask[:, :, i], image, (1 + i / 3.0), line_threshold) + if mode == 'Octagon': + for i in range(1, n_scales - 1): + c = (OCTAGON_OUTER_SHAPE[i][0] - 1) / 2 + OCTAGON_OUTER_SHAPE[i][1] + feature_mask[:c, :, i] = False + feature_mask[:, :c, i] = False + feature_mask[-c:, :, i] = False + feature_mask[:, -c:, i] = False + + elif mode == 'STAR': + for i in range(1, n_scales - 1): + c = STAR_SHAPE[STAR_FILTER_SHAPE[i][0]] + STAR_SHAPE[STAR_FILTER_SHAPE[i][0]] / 2 + feature_mask[:c, :, i] = False + feature_mask[:, :c, i] = False + feature_mask[-c:, :, i] = False + feature_mask[:, -c:, i] = False + rows, cols, scales = np.nonzero(feature_mask[..., 1:n_scales - 1]) keypoints = np.column_stack([rows, cols]) scales = scales + 2