18 void gaussian_blur_fft(uint8_t *image,
size_t width,
size_t height,
double sigma);
24 void threshold_image(uint8_t *ptr,
const int width,
const int height,
const int num_thresholds);
28 const int num_thresholds);
31 void kmeans(
const uint8_t *data, uint8_t *out_data, int32_t *out_labels,
const int32_t width,
32 const int32_t height,
const int32_t k,
const int32_t max_iter,
33 const uint8_t color_space);
36 void bilateral_filter(uint8_t *image,
size_t width,
size_t height,
double sigma_spatial,
37 double sigma_range, uint8_t color_space);
40 char *
labels_to_svg(uint8_t *data, int32_t *labels,
const int width,
const int height,
41 const int min_area,
const bool draw_contour_borders);
void black_threshold_image(uint8_t *ptr, const int width, const int height, const int num_thresholds)
Apply black-thresholding to an image.
void gaussian_blur_fft(uint8_t *image, size_t width, size_t height, double sigma)
Apply a Gaussian blur to an image using FFT.
void bilateral_filter(uint8_t *image, size_t width, size_t height, double sigma_spatial, double sigma_range, uint8_t color_space)
Apply bilateral filtering to an image.
char * labels_to_svg(uint8_t *data, int32_t *labels, const int width, const int height, const int min_area, const bool draw_contour_borders)
Convert labeled regions of an image into an SVG string.
void threshold_image(uint8_t *ptr, const int width, const int height, const int num_thresholds)
Apply a thresholding operation to an image.
void invert_image(uint8_t *ptr, int width, int height)
Invert the pixel values of an image.
void kmeans(const uint8_t *data, uint8_t *out_data, int32_t *out_labels, const int32_t width, const int32_t height, const int32_t k, const int32_t max_iter, const uint8_t color_space)
Perform k-means clustering on image data.