Git Product home page Git Product logo

peterzs / lindebuzograystippling Goto Github PK

View Code? Open in Web Editor NEW

This project forked from marcspicker/lindebuzograystippling

0.0 0.0 0.0 4.32 MB

An interactive demo application for the algorithm proposed in our SIGGRAPH Asia 2017 technical paper.

Home Page: http://graphics.uni-konstanz.de/publikationen/Deussen2017LindeBuzoGray/index.html

License: GNU Lesser General Public License v3.0

CMake 3.06% C++ 96.94%

lindebuzograystippling's Introduction

Weighted Linde-Buzo-Gray Stippling

An interactive demo application for the algorithm proposed in our SIGGRAPH Asia 2017 technical paper. Our project website (paper, video, examples) can be found here. I want to thank Jochen Görtler for his help with this implementation.

Example animation of our algorithm.

Disclaimer

This is a reimplemented demo with focus on interactivity, and not the code that was used to generate the images and timings in the paper.

Abstract

We propose an adaptive version of Lloyd's optimization method that distributes points based on Voronoi diagrams. Our inspiration is the Linde-Buzo-Gray-Algorithm in vector quantization, which dynamically splits Voronoi cells until a desired number of representative vectors is reached. We reformulate this algorithm by splitting and merging Voronoi cells based on their size, greyscale level, or variance of an underlying input image. The proposed method automatically adapts to various constraints and, in contrast to previous work, requires no good initial point distribution or prior knowledge about the final number of points. Compared to weighted Voronoi stippling the convergence rate is much higher and the spectral and spatial properties are superior. Further, because points are created based on local operations, coherent stipple animations can be produced. Our method is also able to produce good quality point sets in other fields, such as remeshing of geometry, based on local geometric features such as curvature.

Citation

@article{Deussen:2017:WLS:3130800.3130819,
  author = {Deussen, Oliver and Spicker, Marc and Zheng, Qian},
  title = {Weighted Linde-Buzo-Gray Stippling},
  journal = {ACM Trans. Graph.},
  issue_date = {November 2017},
  volume = {36},
  number = {6},
  month = nov,
  year = {2017},
  issn = {0730-0301},
  pages = {233:1--233:12},
  articleno = {233},
  numpages = {12},
  url = {http://doi.acm.org/10.1145/3130800.3130819},
  doi = {10.1145/3130800.3130819},
  acmid = {3130819},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {linde-buzo-gray-algorithm, lloyd optimization, remeshing, sampling, stippling, voronoi diagram},
}

Dependencies

The following libraries are required:

  • Qt5Core
  • Qt5Widgets
  • Qt5Svg
  • Qt5PrintSupport

Building

mkdir build
cd build
cmake ..
make
./LBGStippling

lindebuzograystippling's People

Contributors

marcspicker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.