From 9c6ca913d0b7f9b9ae95f72d6187944a8a940228 Mon Sep 17 00:00:00 2001 From: Christian C Date: Thu, 6 Mar 2025 15:34:34 -0800 Subject: Simplify execution --- include/lib/seg/mask_data.h | 6 ++++++ include/lib/seg/util.h | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'include/lib') diff --git a/include/lib/seg/mask_data.h b/include/lib/seg/mask_data.h index f2803e6..8e2ae3a 100644 --- a/include/lib/seg/mask_data.h +++ b/include/lib/seg/mask_data.h @@ -56,4 +56,10 @@ bool_t in_uint16_t_tree(struct AVLNode* root, uint16_t value); // Assumption: Contiguous labeling struct AVLNode* get_small_labels(struct AVLNode* removal_tree, struct AVLNode* label_tree, size_t min_area, size_t min_perimeter); +// Get mask label data +struct AVLNode* get_mask_data(uint16_t* masks, uint32_t width, uint32_t height); + +// Filter out small masks in mask +void filter_small_masks(uint16_t* masks, uint32_t width, uint32_t height, size_t min_area, size_t min_perimeter); + #endif diff --git a/include/lib/seg/util.h b/include/lib/seg/util.h index fcafff6..c54b0e0 100644 --- a/include/lib/seg/util.h +++ b/include/lib/seg/util.h @@ -13,13 +13,13 @@ size_t xy_to_coord(size_t x, size_t y, uint32_t width, uint32_t height); bool_t is_on_mask_boundary(uint16_t* mask, uint32_t width, uint32_t height, size_t x, size_t y); // Dilate masks by one 4-connected pixel -uint16_t* dilate(uint16_t* mask, uint32_t width, uint32_t height); +void dilate(uint16_t** mask, uint32_t width, uint32_t height); // Erode masks by one 4-connected pixel -uint16_t* erode(uint16_t* mask, uint32_t width, uint32_t height); +void erode(uint16_t** mask, uint32_t width, uint32_t height); // Close up masks by N-pixels -uint16_t* closeup(uint16_t* mask, uint32_t width, uint32_t height, size_t count); +void closeup(uint16_t** mask, uint32_t width, uint32_t height, size_t count); // Combine Label Masks // For all empty spaces in the destination, put the extra label if it exists @@ -34,4 +34,9 @@ uint16_t* tif_to_labels(char* tif_file_name, uint32_t *width, uint32_t *height, // Convert mask to bitmap struct bitmap_t* uint16_to_bitmap(uint16_t* buffer, uint32_t width, uint32_t height); +// Reduce a mask to the contiguous regions +// Automatically update pointer to contiguous mask +// Freeing previous mask +void reduce_contiguous_regions(uint16_t** masks_p, uint32_t width, uint32_t height, uint16_t* total_labels); + #endif -- cgit v1.2.1