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)
void gaussian_blur_fft(uint8_t *image, size_t width, size_t height, double sigma)
void bilateral_filter(uint8_t *image, size_t width, size_t height, double sigma_spatial, double sigma_range, uint8_t color_space)
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)
void threshold_image(uint8_t *ptr, const int width, const int height, const int num_thresholds)
void invert_image(uint8_t *ptr, int width, int height)
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)