evo-cubist


Evolutionäre Entwicklung einer Vektorgrafik aus einem vorgegebenen Pixelbild

http://evo-cubist.googlecode.com/files/Mona-Lisa-256x256-0000063135-000006630.png http://evo-cubist.googlecode.com/files/Mona-Lisa-256x256.png http://evo-cubist.googlecode.com/files/Mona-Lisa-256x256-0002592562-000054322.png

Evolutionäre Entwicklung einer Vektorgrafik aus einem vorgegebenen Pixelbild

Der für Evo Cubist verwendete genetische Algorithmus ist einfach. Nach dem Generieren (zufälliger) Polygone mit 3 bis n Eckpunkten fährt er immer aufs Neue wie folgt fort:

  1. Mutiere einige Ecken und gelegentlich die Farben einiger Polygone nach dem Zufallsprinzip.
  2. Male die mutierten Polygone auf eine (weiße) Leinwand.
  3. Berechne die RGB-Differenzen jeder Pixel von generiertem und originalem Bild und summiere sie auf.
  4. Wenn die Summe kleiner ist als die zuletzt berechnete, passt das neue Bild besser und die Polygone werden für die nächste Generation verwendet. Ansonsten wird die Mutation verworfen.

Inspiration:

Literatur:

  • Oliver Lau, Evo Cubist, Genetische Algorithmen erzeugen Vektorgrafiken aus Pixelbildern, c't 22/12, S. 190
  • Thomas Blümecke, Wunder der Evolution, Optimierung mit Evolutionsstrategien und genetischen Algorithmen, c't 12/91, S. 228

Nutzungshinweise

Die Software wurde zu Lehr- und Demonstrationszwecken geschaffen und ist nicht für den produktiven Einsatz vorgesehen. Der Autor und der Heise Zeitschriften Verlag haften daher nicht für Schäden, die aus der Nutzung der Software entstehen, und übernehmen keine Gewähr für ihre Vollständigkeit, Fehlerfreiheit und Eignung für einen bestimmten Zweck.

Falls Sie beabsichtigen, den Code in eigenen Produkten zu verwenden, so ist das im Rahmen der GPLv3 kostenfrei gestattet (siehe die Datei LICENSE.txt im Repository für weitere Informationen).

Copyright (c) 2012 Oliver Lau , Heise Zeitschriften Verlag

Project Information

The project was created on Aug 30, 2012.

Labels:
Academic Graphics Art CPlusPlus Qt Algorithm Evolution