Skip to content

ad-si/FlatCV

Repository files navigation

FlatCV

Image processing and computer vision library in pure C.

Features

Flip, Crop, Trim, Resize, Blur, Draw, Grayscale, Binarize
Corner-Detection, Segmentation, Document-Extraction

Check out the official documentation for more details on each feature.

Usage

FlatCV can either be used as a C library or via its CLI.

CLI

The CLI supports edit pipelines which sequentially apply all transformations.

flatcv <input> <comma-separated-edit-pipeline> <output>

As commas aren't special characters in shells, you can write the edit pipeline without quotes. Both variants yield the same result:

flatcv i.jpg 'grayscale, blur 9' o.jpg
flatcv i.jpg grayscale, blur 9 o.jpg

Examples

Check out the official documentation website for more examples and usage instructions.

Command Input Output
flatcv i.jpg grayscale o.jpg Parrot Parrot Grayscale
flatcv i.jpg grayscale, blur 9 o.jpg Parrot Parrot Grayscale and Blur
flatcv i.jpg bw_smooth o.jpg Parrot Smooth Binarization
flatcv i.jpg watershed 0x0 300x200 599x0 o.jpg Parrot Watershed Segmentation

Library

#include "flatcv.h"

// Resize an image to 50%
unsigned char const * half_size = resize(
  input_width, input_height,
  0.5, 0.5,
  &out_width, &out_height,
  input_data
);

// Do something with the resized image

free(half_size);