Awesome
This is an implementation of "Singularity-Free Frame Fields for Line Drawing Vectorization" by Olga Guțan*, Shreya Hegde*, Erick Jimenez Berumen, Mikhail Bessmeltsev, and Edward Chien (Symposium on Geometry Processing 2023).
Installation and Running
git clone --recursive https://github.com/SingularityFreeFrameFields/Code.git
then cd
into the folder you installed the repository in, and run finalScript_v.m
.
Output
Vectorization
Running finalScript_v.m
will produce and save an svg file with the vectorization, using our singularity-free frame-fields as
a drop-in replacement for the frame fields used originally by [Bessmeltsev and Solomon 2019],
while maintaining the rest of their pipeline.
Frame Fields
It will also produce a figure of the singularity-free frame field.
Example
For a raster input called image.png
, located in /my_inputs/
, running finalScript_v.m
will produce image.png.svg
in the same folder.
Subsequent re-runs overwrite past vectorizations.
Dependencies
This code uses the Image Graphs library. It also uses the Matlab Optimization Toolbox and the Matlab Image Processing Toolbox.
For the C++ optimization, we use the IPOPT libary, which comes pre-installed as a binary. This set-up is supported on Windows machines.
Parameters
All tunable parameters, such as the weights for the smoothness and alignment terms in the optimizations, are in finalScript_v. See Sec. 5.3 of the paper for a more thorough discussion.
Citation
If this code contributes to academic work, please cite:
@article {10.1111:cgf.14901,
journal = {Computer Graphics Forum},
title = {{Singularity-Free Frame Fields for Line Drawing Vectorization}},
author = {Guțan, Olga and Hegde, Shreya and Berumen, Erick Jimenez and Bessmeltsev, Mikhail and Chien, Edward},
year = {2023},
publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
ISSN = {1467-8659},
DOI = {10.1111/cgf.14901}
}