8 const uint8_t* data,
const int width,
const int height,
const ImageToSvgConfig& config
11 std::vector<uint8_t> img_data(
static_cast<size_t>(width) *
static_cast<size_t>(height) * 4);
12 std::vector<uint8_t> out_data(
static_cast<size_t>(width) *
static_cast<size_t>(height) * 4);
13 std::vector<int32_t> out_labels(
static_cast<size_t>(width) *
static_cast<size_t>(height));
16 img_data.data(), data,
static_cast<size_t>(width) *
static_cast<size_t>(height) * 4
19 img_data.data(), width, height, config.bilateral_filter.
sigma_spatial,
23 img_data.data(), out_data.data(), out_labels.data(), width, height, config.kmeans.
k,
Core image processing functions for img2num project.
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.
std::string image_to_svg(const uint8_t *data, const int width, const int height, const ImageToSvgConfig &config)
Convert labeled regions of an image into an SVG string.
std::string labels_to_svg(const uint8_t *data, const int32_t *labels, const int width, const int height, const int min_area, const int min_thickness)
Convert labeled regions of an image into an SVG string.
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.
Configuration options for image_to_svg.
int min_cluster_area
Minimum area (in pixels) for a region to be included in the SVG.