Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Metapixel ist ein Kommandozeilenprogramm, mit dem man ein Fotomosaik erzeugen kann. Man gibt ein Zielbild vor, das anschließend aus vielen kleinen Bildern zusammengesetzt wird (Beispiele ).
Eine grafische Alternative zu Metapixel ist im Programm nomacs integriert.
Metapixel ist in den offiziellen Paketquellen enthalten und lässt sich so bequem installieren [1]:
metapixel (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install metapixel
sudo aptitude install metapixel
Danach kann die Anwendung durch Aufruf des Programmnamens [2] gestartet werden.
Um mit dem Programm sinnvoll zu arbeiten, sollte man eine Vielzahl von Bildern haben. Empfehlenswert sind (mindestens) um die 1000 Bilder. Damit lassen sich schon recht gute Ergebnisse erzielen. Bevor man allerdings loslegen kann, müssen diese Bilder dem Programm erst mal bekannt gemacht werden. Das Programm liest die Bilder ein und speichert ihre Farbwerte für die spätere Verwendung ab.
Zur Ersteinrichtung muss ein Arbeitsverzeichnis für das Programm angelegt werden. Dort werden dann automatisch die Bilder gespeichert, die zur Mosaikerstellung verwendet werden. Dazu erstellt man im Homeverzeichnis den versteckten Ordner ~/.metapixel/.
Natürlich kann man auch über das Terminal [3] den Ordner anlegen:
mkdir ~/.metapixel
Nun teilt man dem Programm mit, mit welchen Original-Bildern es arbeiten soll. Dazu gibt man diesen Befehl im Terminal ein:
metapixel-prepare -r pictures_folder .metapixel
Der Pfad pictures_folder stellt dabei den Quell-Pfad mit den Original-Bildern dar. Diesen sollte man auf jeden Fall anpassen und hier am besten die zu verwendenden Bilder hinein kopieren. Wenn man diesen Befehl aufgerufen hat, dauert es je nach Anzahl der im Ordner enthaltenen Bilder eine Weile. Danach hat metapixel die erforderliche Bild-Bibliothek angelegt und man kann nun mit der wirklichen Erstellung des Photo-Mosaiks beginnen.
Metapixel bietet eine Vielzahl von Einstellungsmöglichkeiten. Wer sich eingehender damit befassen möchte, dem sei geraten, sich den Quellcode von der Projektseite herunterzuladen und in der "Readme" nachzulesen.
Erst einmal die grundlegende Syntax:
metapixel --metapixel input_file.jpg output_file.jpg -l ~/.metapixel/ --cheat=30 --width=35 --height=35 --metric=wavelet --distance=20
Übersicht der Parameter | |
Parameter | Bedeutung / Auswirkung |
input_file.jpg | hier gibt man das Bild an, das als Vorlage für das Endbild dient bzw. das Bild, das man gerne als Mosaik haben möchte. |
output_file.jpg | die Datei, die als Endprodukt herauskommt. |
cheat=30 | metapixel legt das Original-Bild nach der Rasterung wieder über das Ergebnis. Mit diesem Parameter kann man angeben, wie stark die Deckkraft der Überlagerung ist. Hier ist ein Wert zwischen 0 und 100 möglich. Bei --cheat=30 ist das Original-Bild zu 30% wieder zu sehen. Mit dieser Standardeinstellung erzielt man eigentlich recht gute Effekte. |
width=35 | gibt die Breite der kleinen Bildchen an, die das Photomosaik bilden. |
height=35 | gibt die Höhe der kleinen Bildchen an, die das Photomosaik bilden. |
metric=wavelet | Metapixel versucht auf zwei verschiedene Arten, die Mini-Bilder an das Originalbild anzupassen. Mögliche Werte sind: "wavelet" und "subpixel" |
distance=20 | gibt den Abstand an, nach dem sich ein Bild wiederholen darf. "distance=20" beispielsweise bewirkt, dass erst mindestens 20 Bilder Abstand sein müssen, bis das selbe Bildchen wieder verwendet wird. Je höher man diesen Wert setzt, desto genauer wird das Bild - allerdings verliert es an "Qualität", d.h. die einzelnen Bilder tauchen wesentlich häufiger wieder auf. Um dies zu umgehen, sollte man so viele verschiedene Bilder in seine Galerie importieren wie möglich. Hat man nur wenige Bilder zur Verfügung empfiehlt es sich, den Wert niedriger zu setzen, bis hin zu 1 . |
Weitere Optionen sind der Manpage zu entnehmen.
Wer diesen Befehl mit den richtigen Pfadangaben für Input- und Output-File ausführt, wird feststellen, dass ein Original-Bild von z.B. 600 Pixeln Breite auch nur wieder in ein Bild von 600 Pixeln Breite übersetzt wird. Um dies zu beeinflussen, gibt es den "scale
"-Parameter.
Das Beispiel mit 600 Pixel breitem Bild: Übergibt man nun den Parameter "--scale=2"
, wird die Bildgröße verdoppelt. So wird aus einem 600 x 400 Pixel Bild ein 1200 x 800 Pixel großes Mosaik. Dies ist insbesondere bei sehr kleinen Bildern nützlich.
Der Unterschied zwischen metric=wavelet
und metric=subpixel
lässt sich schwer erklären. Allerdings lieferte in den Tests subpixel
bessere Ergebnisse. Wenn man mit dem Ergebnis nicht zufrieden ist, sollte man auf jeden Fall die jeweils andere Methode ausprobieren.
Ein weiterer Parameter ist search
; dieser lässt 2 Werte zu:
global
local
Bei local
darf sich ein Mini-Bild im Mosaik wiederholen.
Mit global
darf sich ein Mini-Bild im Mosaik nicht wiederholen! Dies setzt natürlich voraus, dass man genügend Mini-Bildchen hat. Möchte man zum Beispiel ein Bild mit den Maßen 500 x 500 Pixel mit 25 x 25 Pixel großen Mini-Bildern erstellen, dann braucht man mindestens 20 x 20 = 400 verschiedene Bilder. Natürlich müssen darunter auch (fast) alle im Original-Bild vertretenen Farben sein. Ansonsten führt dies zum Abbruch der Mosaik-Erstellung.
Beim Testen wurde ein sehr zufriedenstellendes Ergebnis mit folgenden Einstellungen erzielt (600 Pixel breites Original-Bild und ca. 1000 Bilder in der Bibliothek):
metapixel --metapixel originalbild.jpg output.jpg -l ~/.metapixel/ --cheat=40 --width=128 --height=72 --metric=subpixel --distance=3 --scale=15
Diese Revision wurde am 2. Mai 2016 21:27 von aasche erstellt.