#ifndef INC_LIB_SEG_UTIL_H #define INC_LIB_SEG_UTIL_H #include #include #include #include #include // Determine if coordinate is on a mask boundary // Assumes mask is (WxH) bool_t is_on_mask_boundary(Mask* mask, size_t x, size_t y); // Dilate masks by one 4-connected pixel void dilate(Mask* mask); // Erode masks by one 4-connected pixel void erode(Mask* mask); // Close up masks by N-pixels void closeup(Mask* mask, size_t count); // Combine Label Masks // For all empty spaces in the destination, put the extra label if it exists // Allocates an array if destination is unallocated 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, MaskData_t *starting_label_p); // Convert mask to bitmap Bitmap* image_mask_data_to_bitmap(const Mask* mask); // Reduce a mask to the contiguous regions // Automatically update pointer to contiguous mask // Freeing previous mask void reduce_contiguous_regions(Mask* mask, MaskData_t* total_labels); #endif