Skip to content

bfactory-ai/zignal

Repository files navigation

Zignal

test documentation

Zignal is an image processing library heavily inspired by the amazing dlib.

Disclaimer

This library is in early stages of development and being used internally. As a result, the API might change often.

Motivation

This library is used by Ameli for their makeup virtual try on.

Features

Initially, the features in this library are the ones required to get the virtual try on for makeup working. However, we hope that it can be a foundation from which we can build a high quality image processing library, collaboratively.

Current features include:

  • color space conversions
  • simple matrix struct with common linear algebra operations
  • singular value decomposition (SVD) ported from dlib
  • geometry
    • points and rectangles
    • projective, affine and similarity transforms
    • convex hull
  • simple image struct with common operations
    • resize
    • rotate
    • crop
    • blur
    • sharpen
    • views (called sub_image in dlib or roi in OpenCV.)
  • drawing and filling functions
    • lines
    • circles
    • polygons

Examples

One of the greatest things about dlib is the large amount of examples illustrating how to use many of that library features. I plan to showcase most of the features of this library as simple HTML/JS + Wasm examples, which can be accessed from here.

Currently, there are examples for:

Acknowledgements

First of all, this project would not have been possible without the existance of dlib. In fact, the first version of the virtual makeup try on was written in C++ with dlib and Emscripten. However, we decided to give Zig a go, even if that meant rewriting the world, but we have no dependencies now.

Finally, B factory, Inc, which is my employer and graciously agreed to release this library to the public.