diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/lib/data/image_types.h | 5 | ||||
-rw-r--r-- | include/lib/seg/mask_data.h | 4 | ||||
-rw-r--r-- | include/lib/seg/util.h | 15 |
3 files changed, 11 insertions, 13 deletions
diff --git a/include/lib/data/image_types.h b/include/lib/data/image_types.h index 4e226ea..8df5feb 100644 --- a/include/lib/data/image_types.h +++ b/include/lib/data/image_types.h @@ -5,13 +5,14 @@ #include <stddef.h> #define ImageData_t uint8_t -#define Image_t ImageData_t** +#define Image_t ImageData_t*** #define MaskData_t uint16_t #define Mask_t MaskData_t** typedef struct Image { size_t width; size_t height; + size_t depth; Image_t image; } Image; @@ -21,7 +22,7 @@ typedef struct Mask { Mask_t image; } Mask; -Image* create_image(size_t width, size_t height); +Image* create_image(size_t width, size_t height, size_t depth); Mask* create_image_mask(size_t width, size_t height); void free_image(Image* image); diff --git a/include/lib/seg/mask_data.h b/include/lib/seg/mask_data.h index 72bd5f7..70bacfa 100644 --- a/include/lib/seg/mask_data.h +++ b/include/lib/seg/mask_data.h @@ -58,9 +58,9 @@ bool_t in_image_mask_data_t_tree(AVLNode* root, MaskData_t value); AVLNode* get_small_labels(AVLNode* removal_tree, AVLNode* label_tree, size_t min_area, size_t min_perimeter); // Get mask label data -AVLNode* get_mask_data(MaskData_t* masks, uint32_t width, uint32_t height); +AVLNode* get_mask_data(Mask* mask); // Filter out small masks in mask -void filter_small_masks(MaskData_t* masks, uint32_t width, uint32_t height, size_t min_area, size_t min_perimeter); +void filter_small_masks(Mask* mask, size_t min_area, size_t min_perimeter); #endif diff --git a/include/lib/seg/util.h b/include/lib/seg/util.h index 4d6b6e4..78f948b 100644 --- a/include/lib/seg/util.h +++ b/include/lib/seg/util.h @@ -7,21 +7,18 @@ #include <stdint.h> #include <stddef.h> -// Convert x,y coords to linear coordinate -size_t xy_to_coord(size_t x, size_t y, uint32_t width, uint32_t height); - // Determine if coordinate is on a mask boundary // Assumes mask is (WxH) -bool_t is_on_mask_boundary(MaskData_t* mask, uint32_t width, uint32_t height, size_t x, size_t y); +bool_t is_on_mask_boundary(Mask* mask, size_t x, size_t y); // Dilate masks by one 4-connected pixel -void dilate(MaskData_t** mask, uint32_t width, uint32_t height); +void dilate(Mask* mask); // Erode masks by one 4-connected pixel -void erode(MaskData_t** mask, uint32_t width, uint32_t height); +void erode(Mask* mask); // Close up masks by N-pixels -void closeup(MaskData_t** mask, uint32_t width, uint32_t height, size_t count); +void closeup(Mask* mask, size_t count); // Combine Label Masks // For all empty spaces in the destination, put the extra label if it exists @@ -31,7 +28,7 @@ Mask* combine_masks(Mask *destination, Mask *extra_labels); // Process Tif File to Labels // width, height will be overwritten with image dimensions // starting_label_p will be incremented for each label found in the image -Mask* tif_to_labels(char* tif_file_name, uint32_t *width, uint32_t *height, MaskData_t *starting_label_p); +Mask* tif_to_labels(char* tif_file_name, MaskData_t *starting_label_p); // Convert mask to bitmap Bitmap* image_mask_data_to_bitmap(MaskData_t* buffer, uint32_t width, uint32_t height); @@ -39,6 +36,6 @@ Bitmap* image_mask_data_to_bitmap(MaskData_t* buffer, uint32_t width, uint32_t h // Reduce a mask to the contiguous regions // Automatically update pointer to contiguous mask // Freeing previous mask -void reduce_contiguous_regions(MaskData_t** masks_p, uint32_t width, uint32_t height, MaskData_t* total_labels); +void reduce_contiguous_regions(Mask* mask, MaskData_t* total_labels); #endif |