marzipanotool.py

10/08/2016 - 17:37 von Wolfgang Strobl | Report spam
Ich habe den verregneten Vormittag eines freien Tages genutzt, ein wenig
mit dem marzipanotool.py herumzuspielen, das ich in dem mit
<e91aqb5avm7t0p2d6e2v0n671aissa5l8o@4ax.com> beginnenden Thread schon
mal angekündigt hatte, und das auf Bitbucket abzulegen. Das Repository
kann hier

<https://bitbucket.org/ws01/marzipan...nloads>

heruntergeladen werden. Ein fetter Beispieloutput ist weiter unten
verlinkt.


Ein paar Anmerkungen und Links.

Das Programm ist ein derzeit auf equirectangulàren (2:1)-Input
beschrànkter Nachbau des Marzipano-Tools <http://www.marzipano.net/tool>

Ein Disclaimer vorab, ich habe das für den eigenen Bedarf gemacht und
nur gerade soweit poliert, daß es m.E. einigermaßen selbsterklàrend ist
und von jemand benutzt werden kann, der unverpackte Software selber über
die Kommandozeile installieren kann.

Entwickelt und benutzt habe ich das bislang nur unter Windows, sehe aber
keinen Grund, warum das nicht unveràndert auch unter Linux oder OS X
laufen sollte, sofern man die Dependencies installiert. Falls es
Probleme oder Unklarheiten gibt, bitte fragen.

Voraussetzungen

Python. Ich bevorzuge immer noch 2.7, habe es aber auch kurz mit 3.5
getestet. Für große Panoramen ist die 64-Bit-Version erforderlich.

Zwei Python-Bibliotheken, jinja2 und pillow, sowie das Programm nona
(http://hugin.sourceforge.net/docs/manual/Nona.html) aus der
Hugin-Distribution.

Die Python-Bibliotheken installiert man üblicherweise mit dem Kommando
pip, d.h.
pip install jinja2
pip install pillow

Nona hat man i.d.R. schon vorliegen, wenn man Hugin installiert hat.
Liegt dessen bin-Verzeichnis im Pfad, findet marzipanotool.py das
Executable selber, alternativ kann man den vollstàndigen Pfad über einen
Parameter angeben.

Wenn alles richtig instaliert ist, sollte
python marzipanotool.py --help
eine Hilfeseite produzieren, die Aufruf und Parameter erklàrt. Kopie
davon weiter unten.

Simpelster Aufruf

marzipanotool.py eiche.jpg

Dies prozessiert eiche.jpg und platziert das Ergebnis im Verzeichnis
"output". Ansonsten produziert das Programm im Normalfall keinen
weiteren Output.

Typischer Aufruf

marzipanotool -t="Dicke Eiche im Kottenforst" --log

Tràgt den Titel an geeigneter Stelle in die Steuerdateien ein und
produziert eine logdatei marzipanotool.log, der man z.B. den Zeitbedarf
einzelner Operation entnehmen kann. Das Ergebnis wird in dem neu
angelegten Verzeichnis "dickeeiche" abgeliefert.


Zeit- und Platzbedarf sowie Einschrànkungen

2:1-Vorlagen werden wie üblich in Kacheln umgerechnet, bei schmaleren
Streifen wird oben und unten gleichbreit aufgefüllt.

Die besagte Eiche benötigt je nach Rechner etwa 20 bis 40 Sekunden, das
größte bisher bearbeitete Panorama (s.w.u.) etwa eine Stunde, rund die
Hàlfte jeweils für die faces (nona) und für das tiling. Für mittelgroße
Panoramen sind 8 GB Memory ausreichend, auch das große benötigt nur rund
die Hàlfte der 24 GB, die ich hier an dem zum Testen benutzten i7-950
habe.

Wenn man als Input statt JPEG oder TIFF ein PNG-Image verwendet, sind
auch Breiten von mehr als 32766 möglich.

<www.mystrobl.de/ws/pic/pano/world.topo.bathy.200411f/> ist ein mit
marzipanotool.py aus einem knapp 2 GByte großen PNG der Größe
86400x43200 erzeugtes Panorama, welches aus 32795 Dateien in 814 Ordnern
besteht, die zusammen 437 MB umfassen. Als .7z verpackt reduziert sich
das auf 351 MB.

Der Transfer des Archivs zu meinem Server mit winscp benötigte etwa 5
Minuten, für den Transfer des ungepackten Verzeicnisses wàre etwa 1 h zu
veranschlagen gewesen.

Im Ergebnis sind im höchsten Zoomlevel kleinere Fehler zu sehen, deren
Ursache ich noch nicht nachgegangen bin, evtl. Rundungsfehler.

Optimierung und funktionale Erweiterung. Zwar bin ich für leicht
umsetzbare Anregungen durchaus offen, davon abgesehen ist mein Interesse
an einer Optimierung von CPU- und Speicherbedarf aber nahezu Null. Wer
sich kommerzielle Software kaufen will, weiß, wo sie zu finden ist.
Wenn jemand mitbasteln möchte, der Link auf das Repository steht oben.


G:\e\panogen>c:\python35\python marzipanotool.py --help
usage: marzipanotool.py [-h] [-o OUTPUT] [-s TILESIZE] [-c CUBESIZE]
[-q QUALITY] [-n EXECUTABLE] [--preservefaces]
[-t TITLE] [--jpegfaces] [-v] [--DEBUG] [--INFO]
[--log] [--loglevel LOGLEVEL] [--test]
INPUT

Generate a Marzipano multires tile set from an full equirectangular
panorama.

positional arguments:
INPUT full equirectangular panorama to be processed

optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
output directory (default: ./output)
-s TILESIZE, --tilesize TILESIZE
tile size in pixels (default: 512)
-c CUBESIZE, --cubesize CUBESIZE
cube size in pixels, or 0 to retain all details
(default: 0)
-q QUALITY, --quality QUALITY
output JPEG quality 0-100 (default: 75)
-n EXECUTABLE, --nona EXECUTABLE
location of the nona executable to use (default:
c:\bin\hugin\binona.exe)
-t TITLE, --title TITLE
Panorama title (default: Panorama)
-v, --verbose be verbose (default: False)
(default: 20)

.
Thank you for observing all safety precautions
 

Lesen sie die antworten

#1 Jochen Kremer
11/08/2016 - 18:02 | Warnen spam
Am 10.08.2016 um 17:37 schrieb Wolfgang Strobl:
Ich habe den verregneten Vormittag eines freien Tages genutzt, ein wenig
mit dem marzipanotool.py herumzuspielen, das ich in dem mit
beginnenden Thread schon
mal angekündigt hatte, und das auf Bitbucket abzulegen. Das Repository
kann hier

<https://bitbucket.org/ws01/marzipan...nloads>

heruntergeladen werden. Ein fetter Beispieloutput ist weiter unten
verlinkt.

Ein paar Anmerkungen und Links.




Erstmal danke für deine Mühe.

ICh hab dein Posting erstmal nur überflogen. Ich hoffe, am WE etwas Muße
zu haben, um mich damit mal auseinanderzusetzen. Python und Nona sollte
ich noch auf'm Rechner haben, da ich Pannellum ja schonmal vorgekostet
hatte.

Ich melde dann bei Gelegenheit Vollzug. 8-)

Schöne Grüße
Jochen

Ähnliche fragen