https://github.com/MauriceGit/Voronoi_Image_Manipulation
A system independent tool for interactive image manipulation with Voronoi and Delaunay data structures.
https://github.com/MauriceGit/Voronoi_Image_Manipulation
data-structures delaunay delaunay-triangulation go go-gui golang golang-application half-edge half-edge-data-structure image-manipulation linux real-time voronoi voronoi-library voronoi-polygons voronoi-tessellation
Last synced: 3 months ago
JSON representation
A system independent tool for interactive image manipulation with Voronoi and Delaunay data structures.
- Host: GitHub
- URL: https://github.com/MauriceGit/Voronoi_Image_Manipulation
- Owner: MauriceGit
- License: mit
- Created: 2018-11-23T17:02:31.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-02-02T06:13:49.000Z (over 4 years ago)
- Last Synced: 2024-10-26T23:55:55.387Z (7 months ago)
- Topics: data-structures, delaunay, delaunay-triangulation, go, go-gui, golang, golang-application, half-edge, half-edge-data-structure, image-manipulation, linux, real-time, voronoi, voronoi-library, voronoi-polygons, voronoi-tessellation
- Language: Go
- Homepage:
- Size: 13.6 MB
- Stars: 233
- Watchers: 10
- Forks: 16
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Voronoi/Delaunay image manipulation
This project implements a small, lightweight tool for real-time image manipulation with Voronoi/Delaunay data structures.
The focus of this project was, to enable users without knowledge of Voronoi or Delaunay specifics, to experiment and play with different looks a Voronoi or Delaunay structure can give to an image.
Some time ago I implemented a similar effect (also Voronoi/Delaunay) in Python ([github.com/MauriceGit/Delaunay_Triangulation](https://github.com/MauriceGit/Delaunay_Triangulation)). The main goal for this new project was, to make it a lot more robust, user friendly, fast and actually useable.
## Interface:
The program will start two separate windows. One to actually display the image and a control window. It will look like the following:
Image view | Control view
:-------------------------:|:-------------------------:
 | ## Requirements:
- Graphics card supporting OpenGL 3.3
- Windows users: Have mingw64 installed. Other C compilers might or might not work. Please report back if it works or submit necessary changes to this README.
- Have Go (Golang) installed on your system.## Run:
- Download this repository or run ```git clone https://github.com/MauriceGit/Voronoi_Image_Manipulation```
- Enter the project directory
- Run ```go get ./...``` to install all dependencies
- Run ```go build``` within the projects directory
- Run the created executable.
- Do not remove the _Images/apple.png_ directory. This image is loaded by default when the program starts.## Screenshots and usecases:
Just to give you and incomplete overview what kind of effects you can achieve with this tool (sometimes with the corresponding controls set).
The _point Distribution_ set to _Poisson Disk_ to achieve random but equally distributed points over the whole area. This gives the most pleasing and homogeneous look most of the time.
The _point Distribution_ set to _Random_. Truly random point distribution. Will create unequally sized regions.
The _point Distribution_ set to _Grid_ will create honeycomb like regions (hexagons) by placing points in a shifted grid.

Set the _Face Rendering_ to _Delaunay Triangles_.


An image of a Labrador with Poisson disk distributed points.
If you like you can add the Voronoi lines and points to actually display the underlaying data structure.



When checking _Adaptive Color_, the lines of Delaunay edges and points will get the average color of the image underneath. Creating an interesting effect.
_Adaptive Color_ checked with Voronoi faces and points displayed with a grid layout.
You could just view the points as well (well that doesn't really use Voronoi/Delaunay any more. But still looks cool :)).
At last, you can just ignore the image to investigate/look at voronoi and Delaunay tessellation itself:
