Skip to content

bfactory-ai/zignal

Repository files navigation

Zignal

tests docs PyPI version

Zignal is a zero-dependency 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.

Installation

Zig

zig fetch --save git+https://github.com/bfactory-ai/zignal

Then, in your build.zig

const zignal = b.dependency("zignal", .{ .target = target, .optimize = optimize });
// And assuming that your b.addExecutable `exe`:
exe.root_module.addImport("zignal", zignal.module("zignal"));
// If you're creating a `module` using b.createModule, then:
module.addImport("zignal", zignal.module("zignal"));

Examples | Documentation

Python

pip install zignal-processing

Bindings | PyPI Package | Documentation

Examples

Interactive demos showcasing Zignal's capabilities:

Features

  • PCA - Principal Component Analysis with SIMD acceleration
  • Color spaces - RGB, HSL, HSV, Lab, XYZ, Oklab, Oklch conversions
  • Matrix operations - Linear algebra functions and SVD
  • Geometry - Points, rectangles, transforms, convex hull
  • Image processing - Resize, rotate, crop, blur, sharpen
  • Canvas API - Lines, circles, polygons, Bézier curves with antialiasing

Motivation

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

Acknowledgements

First of all, this project would not have been possible without the existence 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 everything. As a result, we have no dependencies now.

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



Star History Chart