aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristian C <cc@localhost>2025-03-23 17:47:36 -0700
committerChristian C <cc@localhost>2025-03-23 17:47:36 -0700
commit848a0f6e2d634001e30cbfebef05d93f7301facd (patch)
tree45b062c90d59e6f48284bc73c42d17d7fde19740 /include
parent2fe858c22d27722130339c0d26de00aa78ef1f4d (diff)
Migration to Mask
Diffstat (limited to 'include')
-rw-r--r--include/lib/data/image_types.h5
-rw-r--r--include/lib/seg/mask_data.h4
-rw-r--r--include/lib/seg/util.h15
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