PTOptimizer
PTOptimizer è stato creato originariamente da Helmut Dersch come parte dei Panorama Tools; si tratta di un semplice programma di contorno delle routine di ottimizzazione dei punti di controllo presenti nelle librerie pano12.
Il codice sorgente dell'originale PTOptimizer non è mai stato rilasciato, comunque la ricostruzione è stata piuttosto semplice e una versione multi piattaforma è ora inclusa nella libreria pano12 disponibile su Sourceforge.
Qui sotto è riportato l'esempio originale aggiornato dello script di esempio commentato. È stato copiato dalla pagina di Jim Watters
############# Esempio di script ##########################
# per utilizzare PTOptimizer
#
#
# Vengono elaborate solamente le righe che iniziano con "p", "v", "i", o "m".
# Utilizzando qualsiasi altro carattere all'inizio della riga, è possibile inserire
# dei commenti.
# Non iniziare una riga con !, dato che è utilizzato dagli script e dal plugin di aggiustamento.
# il carattere "*" (asterisco) indica la fine del file di script.
# Lo script deve contenere:
# una riga "p" che descrive l'immagine di output (es: panorama)
# una riga "i" per ogni immagine di input
# una o più righe "v" che elencano le variabili da ottimizzare
# la riga "m" è opzionale e permette di specificare la modalità di ottimizzazione
# una riga "c" per ogni coppia di punti di controllo
# Opzioni della riga "p"
# w1000 larghezza in pixel
# h600 altezza in pixel (predefinita = larghezza/2)
# f0 formato della proiezione,
# 0 - rettilineare (per la stampa e la visualizzazione)
# 1 - cilindrica (per la stampa e per i file QTVR)
# 2 - equirettangolare (per i panorami sferici): impostazione predefinita
# 3 - fullframe fisheye
# v360 campo inquadrato orizzontale del panorama (predefinito: 360)
# nPICT formato del file del panorama:
# PICT file pict per Mac, file bmp per windows (predefinito)
# PSD file di Photoshop a livello singolo; sono supportati i 48 bit
# PNG formato png; sono supportati i 48 bit
# TIFF formato tiff; sono supportati i 48 bit
# PSD_mask file di Photoshop, un'immagine per livello
# + maschera di forma e maschera di ritaglio frangiata al centro della sovrapposizione
# PSD_nomask file di Photoshop, un'immagine per livello
# TIFF_mask formato tiff, multi file, un'immagine per file; sono supportati i 48 bit
# livello alfa con maschera di ritaglio frangiata al centro della sovrapposizione
# TIFF_m formato tiff, multi file, un'immagine per file; sono supportati i 48 bit
# livello alfa con maschera di ritaglio non frangiata al bordo dell'immagine
# + maschera di forma e maschera di ritaglio non frangiata al bordo dell'immagine
# JPEG immagine panoramica in formato jpeg. Utilizzare con l'opzione f1
# per i panorami IBM Hotmedia.
# PAN SmoothMove movie. Use only with f2.
# IVR LivePicture IVR movie
# cilindrico (formato f1) o sferico (formato f2)
# IVR_java LivePicture Java Panorama,
# cilindrico (formato f1) o sferico (formato f2)
# VRML nodo di sfondo VRML, usare solamente con f2 per i panorami, o con oggetti
# VRML-object per PTStereo
# QTVR Apple QTVR-panomovie; da utilizzare esclusivamente con f1
# 3DMF 3DMF-object (PTStereo).
#
# n"QTVR w400 h300 c1" opzioni aggiuntive di visualizzazione in una stringa racchiusa da virgolette con formato
# sono riconosciute le seguenti opzioni:
# w(larghezza) e h(altezza) della finestra di visualizzazione (solo per i QTVR su sistemi Mac)
# c(codec: 0-JPEG, 1-Cinepak, 2-Sorenson) (solo per i QTVR su Mac)
# q(qualità del codec):
# 0-alta, 1-normale, 2-bassa QTVR su Mac
# 0-100(massima) per gli altri formati jpeg (PAN, IVR, IVR_java, VRML)
# g jpeg progressivo (0-no, 1-sì) (PAN, IVR, IVR_java, VRML)
# JPEG ottimizzato (0-attivato(predefinito), 2-disabilitato), (3-progressivo con ottimizzazione abilitata)
# p angolo di pan iniziale ( QTVR su Mac, VRML, IVR)
# v campo inquadrato (QTVR, VRML, IVR)
# Molte altre opzioni possono essere impostate modificando lo script per il visualizzatore
# -buf sopprime i comandi di buffer nello script di assemblatura generato da PTOptimizer.
# (i comandi del buffer sono ora obsoleti; -buf e +buf nelle righe "i" sono ignorati al are
# momento dell'assemblatura). Questa opzione dovrebbe essere aggiunta se si intende modificare
# l'immagine panoramica finale: ad esempio per i due formati PSD.
# a0.0 b1.0 c0.04 Opzione per creare immagini multiple in PTInterpolate e PTMorpher.
# a indica il valore iniziale,
# b valore finale
# c incremento. 0 è l'immagine di sinistra, 1 l'immagine di destra.
# Il comando interpola/morph due immagini e crea 25 immagini intermedie.
# u10 larghezza della frangia per assemblare tutte le immagini. default: 10
# k1 tenta di correggere colore e luminosità, utilizzando il numero dell'immagine come ancora
# b1 tenta di effettuare la correzione della luminosità senza alterare il colore, utilizzando il numero dell'immagine come ancora
# d1 tenta di effettuare la correzione del colore senza alterare la luminosità, utilizzando il numero dell'immagine come ancora
# Non utilizzare più di uno fra k, d, b; è un metodo nuovo di correzione.
p w800 nPSD_mask -buf
# Le righe "i" descrivono le immagini di partenza. È necessaria una riga per ogni immagine
# I parametri non necessari per l'ottimizzazione ma richiesti per l'assemblatura, possono essere
# impostati da qui; l'ottimizzatore li aggiungerà automaticamente alle righe "o"
# ----------------
# f0 formato della proiezione:
# 0 - rettilineare (lenti comuni)
# 1 - panoramica (fotocamere a scansione come la Noblex)
# 2 - fisheye circolare
# 3 - fullframe fisheye
# 4 - PSphere, equirettangolare
# 8 - Ortografica. È permessa solamente in PTStereo e per la prima
# immagine; indica una mappa o un piano del terreno.
# w600 larghezza in pixel
# h1000 altezza in pixel
# v82 campo inquadrato orizzontale dell'immagine (richiesto, ma ignorato per f8)
# y0 angolo di imbardata (necessario)
# p43 angolo di inclinazione (necessario)
# r0 angolo di rollio (necessario)
# a,b,c coefficienti iniziali di correzione dell'obiettivo (predefiniti a0, b0, c0 opzionale)
# (consultare http://www.fh-furtwangen.de/~dersch/barrel/barrel.html)
# d,e spostamento iniziale dell'obiettivo in pixel (default d0 e0, opzionale).
# utile per correggere gli spostamenti dal centro dell'immagine
# d - spostamento orizzontale
# e - spostamento verticale
# g,t spostamento iniziale dell'obiettivo. Utile per rimuovere piccoli disallineamenti
# tra la linea di scansione in relazione al supporto
# g - spostamento orizzontale
# t - spostamento verticale
# u10 (obsoleto, utilizzato globalmente nella riga p) specifica la larghezza delle frange per l'assemblatura. default:10
# S100,600,100,800 Selezione (l, r, t, b). Solo i pixel all'interno del rettangolo verranno utilizzati per la conversione.
# La dimensione dell'immagine originale verrà utilizzata per calcolare tutti i parametri
# (es: il campo inquadrato si riferisce all'immagine originale).
# C100,600,100,800 Ritaglio (l ,r, t , b). Solo i pixel all'interno del rettangolo verranno utilizzati per la conversione.
# La dimensione dell'immagine ritagliata verrà utilizzata per calcolare tutti i parametri
# (es: il campo inquadrato si riferisce alla porzione di immagine ritagliata).
# m20 (obsoleto, utilizzare S e C) ignora una cornice larga 20 pixel. default: 0
# mx100 (obsoleto, utilizzare S e C) ritaglia al rettangolo più luminoso con una dimensione di 100x200;
# my200 (obsoleto, utilizzare S e C) utilizzato solo per le immagini fisheye circolari (f2)
# s0 (obsoleto, ignorato, sempre sfumato) indica la posizione della cucitura tra il buffer e l'immagine:
# 0- al centro della sovrapposizione ("sfumatura" ,default)
# 1- al bordo dell'immagine ('paste').
# o (lettera minuscola). Morph-to-fit utilizzando i punti di controllo.
# k0 (obsoleto, utilizza la correzione della riga "p" ancora utilizzata dal plugin)
# tenta di correggere colore e luminosità quando fonde l'immagine e il buffer, valori possibili:
# 0 - nessuna correzione (default);
# 1 - cambia immagine;
# 2 - cambia buffer;
# 3 - cambia entrambe
# questa caratteristica non funziona molto bene!
# X10 coordinate assolute della posizione della fotocamera, usato solo per PTStereo
# Y200 se la fotocamera è allineata (imbardata = inclinazione = rollio = 0,0),
# Z-13.5 X è la coordinata verso destra, Y quella verticale verso l'alto e
# -Z è quella diretta come lo sguardo.
# nNome nome dell'immagine (ignorato da PTOptimizer, utilizzato da PTStitcher)
#
# I parametri di diverse immagini possono essere collegati utilizzando il carattere "="
# seguito dal numero dell'immagine partendo da 0.
# Per esempio "v=0" imposta il valore del campo inquadrato orizzontale pari a quello
# dell'immagine con numero 0. Questa caratteristica si applica per le variabili
# v, a, b, c, (r, p, y facendo attenzione) d, e, g e t
i f2 r0 p0 y0 v183 a0 b-0.1 c0 mx400 my400
i f2 r-0.5 p1 y182 v=0 a0 b-0.1 c0 mx400 my400
# Opzioni della riga "v":
# -----------------
# NOTA: la riga "v" deve venire dopo le righe "i".
# Le variabili di ottimizzazione sono elencate con il numero d'immagine partendo da 0.
# Sono consentite più righe "v".
#
# y0 Ottimizza l'imbardata dell'immagine 0
# p1 Ottimizza l'inclinazione dell'immagine 1
# r2 Ottimizza il rollio dell'immagine 2
# v0 Ottimizza il campo inquadrato dell'immagine 0
# a2 Ottimizza il parametro "a" di correzione dell'obiettivo per l'immagine 2
# anche "b" e "c" possono essere ottimizzati allo stesso modo.
# X1 Ottimizza la coordinata x dell'immagine 1, solo per PTStereo
# Y2 Ottimizza la coordinata y dell'immagine 2, solo per PTStereo
# Z6 Ottimizza la coordinata z dell'immagine 6, solo per PTStereo
#
# Se un'immagine ha un parametro collegato a quello di un'altra immagine, è sufficiente ottimizzare
# solamente la principale.
v v0 r0 p0 r1 p1 y1
#
# Opzioni della riga "m"
# ----------------
# Imposta la modalità di assemblatura, non richiesta (opzionale)
#
# g2.5 Imposta il valore della gamma per le computazioni interne (default 1,0)
# See <http://www.fh-furtwangen.de/~dersch/gamma/gamma.html>
# i2 impostazione dell'interpolatore; vedere <http://www.fh-furtwangen.de/~dersch/interpolator/interpolator.html>
# scelte possibili:
# 0 - poly3 (default)
# 1 - spline16,
# 2 - spline36,
# 3 - sinc256,
# 4 - spline64,
# 5 - bilinear,
# 6 - nearest neighbor,
# 7 - sinc1024
# \/ filtri antialiasing \/ vedere <http://www.pano2qtvr.com/dll_patch/>
# 8 - Box
# 9 - Bartlett/Triangle
# 10 - Hermite
# 11 - Hanning
# 12 - Hamming
# 13 - Blackmann
# 14 - Gaussian 1/sqrt(2)
# 15 - Gaussian 1/2
# 16 - Quadardic
# 17 - Cubic
# 18 - Catmull-Rom
# 19 - Mitchell
# 20 - Lanczos2
# 21 - Lanczos3
# 22 - Blackman/Bessel
# 23 - Blackman/sinc
#
# p0 Crea il panorama dopo l'ottimizzazione dei punti di controllo
# 0 no(default), 1 sì
m g1.5 i6
#
# righe "c"
# ----------------
# Righe del punto di controllo
# Una riga per coppia di punti
# a relativo a una coppia di punti per immagine e per variabile da ottimizzare.
# Più sono le variabili da ottimizzare, maggiore è il numero di punti di controllo necessari.
#
# n0 prima immagine
# N1 seconda immagine
# x1066.5 posizione x del punto della prima immagine
# y844.333 posizione y del punto della prima immagine
# X239.52 posizione x del punto della seconda immagine
# Y804.64 posizione y del punto della seconda immagine
# t0 tipo di punto di controllo (opzionale)
# 0 - normale (default)
# 1 - ottimizza solo orizzontalmente
# 2 - ottimizza solo verticalmente
# 3+ (tutti gli altri numeri) - linea retta
*
Tutto quello che segue il simbolo "*" (asterisco) viene ignorato.