Tecniche di Photo Stitching
Seconda parte: riprese ad alta risoluzione e panoramiche

11 Dicembre 2005

Sei il visitatore numero 67827


Introduzione

Nel primo articolo della serie abbiamo presentato lo Stitching e le sue svariate applicazioni fotografiche. In questo secondo articolo approfondiremo il tema delle riprese ad alta risoluzione e panoramiche, dalla ripresa sul campo fino alla realizzazione del montaggio digitale.

Nota (ottobre 2007): tutte le procedure descritte in questo articolo si applicano anche all'attuale versione di PTgui, la 7.3. Le uniche differenze possono risultare dalla diversa veste grafica dei pulsanti e dalla posizione di alcuni comandi all'interno delle schermate.

Revisione del 21 Ottobre 2007: layout rinnovato.  Inserita nota su PTgui 7.3.  Aggiunto il paragrafo 17 "Scelta del Blender".


Indice degli argomenti trattati

01- La teoria
02- Il "punto nodale anteriore" di un obiettivo.
03- Le teste panoramiche
04- Alla ricerca del punto nodale anteriore.
05- Riprese ad alta risoluzione e Panoramiche: la pratica
06- Un po' di storia: dalle PanoTools a PTGui 5.5
07- PTGui: preparazione delle immagini e impostazioni iniziali.
08- PTGui: Lens Settings
09- PTGui: Panorama Settings. I tre tipi di proiezione supportati.
10- Yaw, Pitch e Roll: l'orientamento della fotocamera in tre parametri.
11- PTGui: generazione automatica dei Control Points
12- PTGui: immissione/ modifica/ eliminazione manuale dei Control Points
13- PTGui: Ottimizzazione automatica dei parametri.
14- PTGui: il Panorama Editor.
15- PTGui: il Preview dello Stitch
16- PTGui: la creazione dello Stitch finale.
17- Scelta del Blender.
18- Conclusioni




1- La teoria

Come sappiamo, questo tipo di Stitch comporta una suddivisione della scena da fotografare in una griglia di scatti da eseguire con un’ottica dall’angolo di campo più ristretto. In fase di scatto ruoteremo l’apparecchio intorno ai due assi orizzontale e verticale in modo da inquadrare le singole porzioni dell’immagine finale.

In funzione del modo in cui viene eseguita la rotazione della fotocamera si determina la qualità finale dello Stitch. Perché? Analizziamo bene i due scatti che seguono:


Le due immagini sono state riprese con la fotocamera fissata su cavalletto; gli elementi sui quali porre l'attenzione sono i due stativi, uno posto a distanza molto ravvicinata e l'altro posto a circa 20 metri dalla fotocamera. Nell'immagine A i soggetti sono stati allineati e posti al centro del fotogramma, mentre nell'immagine B la fotocamera è stato ruotata per porre i soggetti all'estremità destra del fotogramma.
Notiamo che nello scatto B i riferimenti non risultano allineati: ciò è dovuto al fatto che la rotazione non è stata effettuata correttamente e questo ha comportato di fatto un lieve spostamento della fotocamera rispetto all'asse dei due stativi.
Questa situazione non è accettabile al fine di giuntare i due scatti, in quanto le due immagini sono di fatto diverse e non sovrapponibili.

Qual'è il metodo migliore per risolvere questo problema?




2- Il "punto nodale anteriore" di un obiettivo.

Per rispondere è necessario introdurre la definizione ottica di “punto nodale anteriore” di un’obiettivo: si tratta di un particolare punto disposto sull’asse dell’ottica che in pratica è il punto da cui esso “vede” la scena. Questo punto può cadere all’interno dell’obiettivo oppure esternamente ad esso, a dipendenza dello schema ottico impiegato per la sua costruzione: ad esempio nelle ottiche con schema "retro-focus" (quelle impiegate in tutte le fotocamere reflex) il punto nodalè è sempre in prossimità della lente frontale o addirittura davanti ad essa.


Schema di principio dei punti nodali. Il punto nodale anteriore è indicato con "N".

La caratteristica che ci interessa del punto nodale anteriore è che ruotando la fotocamera mantenendola imperniata su di esso, si evita il benché minimo spostamento rispetto alla scena inquadrata, quindi ci troviamo nelle condizioni ideali per riprendere qualsiasi scena con la tecnica dello Stitching.
Detto questo, si intuisce facilmente che la classica testa del cavalletto (sia essa a sfera oppure a tre movimenti) non può assolutamente assolvere al compito. Nasce dunque l’esigenza di utilizzare una testa capace di posizionare la fotocamera in modo micrometrico sul punto nodale anteriore.




3- Le Teste panoramiche

Facciamo subito conoscenza di questo tipo di teste per cavalletto presentando il modello 303plus della Manfrotto, un oggetto adatto a realizzare Stitch lungo l'asse orizzontale, dunque ad una solo riga:


Le caratteristiche salienti di questo modello sono le seguenti:

- varie bolle per il livellamento del cavalletto e della fotocamera;
- rotazione durante lo Stitch con passi prefissati in base all’angolo di campo dell’ottica utilizzata; questa funzione, resa possibile dal congegno indicato con "C", rende molto agevole e veloce la sequenza degli scatti, in quanto non è necessario traguardare nel mirino tra uno scatto e l’altro;
- slitte micrometriche nei due assi ("A" e "B") che consentono una perfetta individuazione del punto nodale. Le scale graduate riportate sulle slitte consentono di reimpostare velocemente le posizioni per ciascun ottica utilizzata.
- staffa "D" con doppio aggancio rapido che consente di posizionare sia in orizzontale che in verticale la fotocamera; quest'ultima posizione è la più utilizzata perchè consente di sfruttare il lato lungo del fotogramma (dunque quello con angolo di campo maggiore) come lato corto dell'immagine finale.

I modelli più completi sono le teste panoramiche "sferiche", che consenteno la rotazione anche sul secondo asse, consentendo di eseguire agevolmente gli Stitch a griglia (cioè a più righe). Qui di seguito sono raffigurate due ottime teste sferiche, la Manfrotto 303SPH e la Kaidan QuickPan IV

Due teste panoramiche sferiche da Manfrotto e Kaidan

La soluzione Kaidan è di elevata qualità e prezzo al livello della Manfrotto. Altri modelli da prendere in considerazione sono Panosaurus (che realizza versioni economiche, ma non adatte a sorreggere carichi medio/alti) e NodalNinja , il cui modello SPH-1i è realizzato con lo stesso concetto della Kaidan QuickPan, ma ad un prezzo molto interessante). Eventuali limitazioni di utilizzo con determinati corpi macchina e/o obiettivi sono normalmente segnalati nelle schede tecniche dei prodotti.

Personalmente ho utilizzato la testa Manfrotto 303plus, e devo dire che è uno strumento molto solido e preciso. L’unico limite è rappresentato dalla lunghezza delle slitte che, utilizzando obiettivi di lunga focale, possono rivelarsi corte e dunque insufficienti per centrare il punto nodale. Questa tuttavia è una limitazione comune a tutte le teste panoramiche, dato che slitte molto lunghe comprometterebbero la stabilità oppure renderebbero la testa eccessivamente pesante ed ingombrante. Alcune case hanno comunque in listino slitte di prolungamento.




4- Alla ricerca del Punto nodale anteriore

Adesso che abbiamo individuato il problema ed anche lo strumento necessario per affrontarlo, vediamo come si procede per posizionare esattamente la fotocamera in modo da ruotare attorno al punto nodale dell’obiettivo.

La sequenza delle operazioni da eseguire è riferita alla testa Manfrotto 303plus, ma i principi esposti valgono per tutte le altre teste non-sferiche:

1. posizionare il cavalletto in bolla;

2. fissare la fotocamera alla staffa di sostegno (normalmente in posizione verticale) facendo attenzione che il piano del sensore rimanga verticale (aiutarsi eventualmente con una bolla applicata direttamente sul corpo macchina)

3. utilizzare la slitta di traslazione per far coincidere l’asse dell’ottica con la colonna centrale del cavalletto (vedi immagine seguente);



4. individuare una scena con due riferimenti posti in verticale, uno nelle vicinanze della fotocamera, l’altro verso l’infinito (vedi figura A);

5. comporre l'inquadratura in modo che i due riferimenti risultino perfettamente allineati ;

6. utilizzando lo snodo alla base della testa, ruotare la fotocamera e controllare che nel mirino i due riferimenti rimangano nella stessa posizione tra loro, in caso contrario utilizzare l’altra slitta per spostare in avanti o indietro la fotocamera; ripetere poi il controllo.
Nella seguente tabella sono raffigurate le tre situazioni : rotazione dietro al punto nodale, davanti al punto nodale e infine sul punto nodale. Il punto nodale è indicato dal pallino azzurro, mentre l'asse di rotazione è indicato con la linea rossa tratteggiata. Accanto a ciascuna situazione sono riportati i dettagli dei riferimenti, così come risultano quando vengono inquadrati nell'estremità sinistra e nell'estremità destra del fotogramma.
Come si vede nell'ulimo caso,
solo quando si ruota la fotocamera attorno al punto nodale anteriore i riferimenti rimango perfettamente allineati, indipendentemente dalla loro posizione all'interno del fotogramma:


7. una volta raggiunta la situazione “visivamente” corretta, sarebbe utile affinare ulteriormente la regolazione controllarando le immagini scattate al computer: usando solo il mirino infatti non si possono apprezzare le piccole variazioni di posizione dei due riferimenti. Appare dunque evidente che questo processo di regolazione è più facilmente realizzabile con una fotocamera digitale, in quando consente di controllare gli scatti in tempo reale e senza dover rimuovere la fotocamera dal cavalletto.

Una volta individuata la regolazione ottimale per un dato sistema fotocamera/obiettivo, non resta che prendere nota dei valori impostati sulle due slitte, così che nei successivi utilizzi l’operazione di allineamento risulterà semplice e veloce.


Se si utilizza una testa di tipo “Spherical” la procedura è simile, ma al punto “6” si effettua la ricerca effettuando rotazioni di prova attorno all’asse orizzontale (dunque puntando in alto e in basso la fotocamera) utilizzando al punto “4” due riferimenti disposti orizzontalmente, uno nelle vicinanze della fotocamera, l’altro verso l’infinito.




5- Riprese ad alta risoluzione e Panoramiche: la pratica

Al fine di ottenere i migliori risultati, durante una ripresa Stitch è necessario fare attenzione ad alcuni aspetti tecnici.

- Prima di inziare, occorre innanzitutto una operazione mentale di previsualizzazione dell'immagine finale. Infatti la scena che si vuol fotografare non può essere controllata nella sua integrità all'interno del mirino, ma deve essere ben chiara nella nostra mente.

- Quale fotocamera utilizzare: rimanendo nell’ambito consigliato delle digitali, si può spaziare dalle compatte di livello medio/alto alle reflex (con sensori DX o full-frame) e, perché no, alle macchine medio formato con dorso digitale. Resta inteso che la fotocamera deve avere la possibilità di bloccare esposizione, messa a fuoco e bilanciamento del bianco per tutta la serie di scatti dello Stitch.

- Quale formato utilizzare: sicuramente il formato RAW, che consente di decidere a posteriori il bilanciamento del bianco, lo spazio colore di lavoro e lo sharpening. Inoltre il RAW consente di effettuare la post-produzione a 16bit/colore. In mancanza della modalità RAW, ovviamente si può usare anche il formato JPG.

- Quale ottica usare: nessuna restrizione. Cercate comunque di evitare le ottiche con forti livelli di distorsione e/o vignettatura perché, oltre a rendere la vita difficile al software che dovrà ricomporre la scena, determineranno una minor qualità dell’immagine finale. Per i migliori risultati è consigliabile fare uso di ottiche fisse, delle quali conosciamo con certezza la lunghezza focale, che è un parametro fondamentale da impostare nel software di stitching. Molto utili possono rivelarsi anche le ottiche decentabili, specie per applicazioni in foto di architettura e di interni.

- Messa a fuoco: bisogna considerare tutto ciò che apparirà nell’immagine finale e impostare la messa a fuoco di conseguenza. E’ consigliabile sfruttare appieno la profondità di campo (pdc) dell’obiettivo usato, dunque è bene aiutarsi con le indicazioni di profondità di campo riportate sul barilotto, sempre presenti sulle ottiche fisse ma spesso assenti sulle ottiche zoom (vedi figura seguente).


Esempio di uso delle indicazioni sul barilotto: in questo caso impostando f/22 (tacche arancio) si ottiene una pdc da circa 2 metri all'infinito.

- Filtri: evitare tassativamente l’uso dei filtri polarizzatori. Più in generale è consigliabile di togliere qualsiasi filtro dall’ottica utilizzata per lo stitch, in modo da eliminare al massimo le riflessioni parassite che potrebbero determinare fotogrammi più contrastati ed altri meno, creando così problemi in fase di giuntatura.

- Paraluce: vivamente consigliato, per gli stessi motivi per cui è consigliabile rimuovere i filtri. L’uso di ottiche zoom rende oggettivamente più difficile avere un’adeguato riparo dai raggi incidenti della fonte di illuminazione.

- Impostazione del diaframma: vi troverete spesso a dover utilizzare diaframmi abbastanza chiusi (f/11 ed oltre) in quanto si utilizzano sempre ottiche con lunghezza focale maggiore di quella che sarebbe servita per riprendere la stessa scena con uno scatto singolo, pertanto avremo una minor profondità di campo disponibile. Diciamo che ritroveremo nella nostra fotocamera “piccolo formato” le stesse difficoltà per avere “tutto a fuoco” che si hanno nei formati superiori (6x4,5cm, 6x7cm, ecc.), dato che per riprendere una scena abbracciata da un “normale” 50mm ci troveremo ad usare un 85mm o persino focali maggiori, proprio come accade nel medio e grande formato. Nota: esiste la possibilità di abbinare la tecnica dell’estensione della profondità di campo, scattando due immagini con diversa m.a.f. per ciascun elemento dello Stitch: I risultati sono sorprendenti, ma la post-produzione diventa molto più laboriosa.

- Esposizione: questo è un altro momento sul quale porre la massima attenzione, specie quando si vogliono riprendere scene con angoli di campo molto ampi: i livelli di esposizione necessari potrebbero mutare anche di molto da un lato all’altro della scena, occorre dunque fare alcune prove prima di decidere l’esposizione che salvaguardi le ombre senza “bruciare” le alte luci (un altro punto a favore per le digitali , dato che è sufficiente controllare gli istogrammi).

A questo punto si sistema il cavalletto in modo che la testa risulti perfettamente in bolla, quindi si fissa la fotocamera in posizione verticale. Si procede poi a regolare le due slitte della testa panoramica in modo da far ruotare la macchina attorno al punto nodale dell’obiettivo.
A questo punto si imposta il passo di rotazione della testa panoramica, in base all’angolo coperto dal lato corto del nostro fotogramma, meno un 30% circa che servirà per la necessaria area di sovrapposizione tra uno scatto e l’altro.
Sottolineo l'importanza di avere aree di sovrapposizione sufficientemente dimensionate, perché è proprio all’interno di queste aree che il software di stitching dovrà individuare i punti di corrispondenza che determineranno poi la precisione della giuntatura.

Siamo adesso pronti a scattare: attendere il momento propizio e… via! in rapida sequenza. Quando si opera in esterni è necessario trovare il giusto equilibrio tra stabilità e rapidità, per evitare cambiamenti di illuminazione oppure folate di vento che potrebbero spostare i soggetti, come ad esempio l'erba o le fronde degli alberi.
Qualunque dubbio si abbia sulle scelte fatte (cosa che accade spesso agli inizi), ripetere la sequenza di scatti, magari provando esposizioni e/o messe a fuoco diverse.

L'uso del cavalletto con testa panoramica è sempre necessario?
No, è possibile ottenere buoni risultati anche a mano libera
, fatta eccezione per le scene nelle quali sono presenti contemporaneamente oggetti molto vicini alla fotocamera ed altri in lontananza (errori di parallasse). Nelle normali applicazioni di paesaggio è facile aggirare anche gli errori di parallasse (di entità non eccessiva), dato che normalmente non esistono precisi riferimenti geometrici che evidenziano i disallineamenti nella giunzione dei fotogrammi. In queste applicazioni è inoltre possibile rendere praticamente invisibili questi difetti, agendo in fase di post-produzione sul punto di transizione tra fotogramma e fotogramma, oppure utilizzando Blender avanzati.
In fase di ripresa consiglio di effettuare le rotazioni della fotocamera facendo molta attenzione a mantenere allineati gli scatti, utilizzando i riferimenti che la scena ci offre: questo è importante perchè in caso contrario saremo costretti a rifilare molto l'immagine, renderendo impossibile la ricostruzione dell'immagine previsualizzata.
E' altrettanto importante cercare di ruotare la macchina attorno al punto nodale dell'obiettivo, anche se a mano libera l'impresa è davvero ardua: è possibile tuttavia limitare gli spostamenti stando ben eretti e facendo torsione sul busto. L'uso di un monopiede si può rivelare di grande aiuto.
Personalmente eseguo molto spesso paesaggi con Stitch a mano libera, trovo che sia una grande possibilità quella di potersi muovere liberamente, senza pesi e ingombri che alla fine risultano di impaccio, e poter "cogliere l'attimo" con una rapida sequenza di scatti : questo significa poter contare su immagini finali con una grande quantità di informazioni, cosa che si rivela importante per stampe in formato A3 e superiori, in particolar modo per quelli in bianco/nero.
La differenza in termini di qualità è importante: una immagine con rapporto tra i lati di 2:1, utilizzando una fotocamera da 6 Mpixel, conterà circa 4,5 Mpixel se scattata con un sigolo fotogramma oppure circa 12-16 Mpixel se scattata con uno Stitch da 3-4 fotogrammi !
Resta inteso che le condizioni di luce devono permettere l'uso di tempi di scatto adeguati, compatibilmente con la necessaria diaframmatura dell'obiettivo: quando ciò non si verifica, l'uso del cavalletto con testa panoramica diventa realmente un obbligo.

A questo punto abbiamo la nostra sequenza di scatti pronta per essere giuntata con l'ausilio di un software specifico. Tra i molti tools presenti sul mercato, abbiamo scelto PTGui 5.5, un softare estremamente potente e flessibile, proposto ad un costo abbordabilissimo, 59 euro+IVA.




6- Un po' di storia: dalle PanoTools a PTGui 5.5

Tutto ebbe inizio nel 1998 quando il professor Helmut Dersch rilasciò la prima versione delle Panotools, una serie di utility in grado di effettuare le complesse operazioni necessarie per giuntare più fotogrammi, compreso la rimozione della distorsione delle ottiche.
Queste utility, frutto di ottime conoscenze matematiche e di fisica ottica, non possedevano alcuna interfaccia grafica ed era dunque necessario scrivere dei files di testo (scripts) che contenessero i dati di input necessari: anche i "control points", ovvero i punti di coincidenza delle immagini, andavano trascritti in forma numerica. Questi tools facevano miracoli, ma l'interfaccia non si poteva certo classificare come "user friendly" !
Per questo motivo sono state sviluppatte le interfacce grafiche (GUI = graphical user interface), che sfruttano le funzionalità grafiche offerte dai moderni sistemi operativi e provvedono a tradurre le impostazioni dell'utente in scripts elaborabili dalle Panotools. Le GUI più utilizzate sono PTAssembler e PTMac (rispettivamente per Win e Mac), Hugin (sia Win che Mac) e PTGui (solo Win).

Le Panotools sono state sviluppate da Dersch fino al 2001, dopodichè nuove versioni sono state elaborate da altri programmatori sulla base del codice open-source originale. Sono stati inoltre sviluppati anche plug-in come ad esempio Autopano (per la ricerca automatica dei punti di coincidenza) ed Enblend (algoritmo avanzato di fusione tra i fotogrammi). Anche le interfacce grafiche si sono evolute nel tempo, rendendo sempre più semplice la gestione di tutti i potenti strumenti messi a disposizione delle Panotools.

La nostra scelta è ricaduta su PTGui perchè è la prima interfaccia grafica che si è evoluta in un vero e proprio programma di stitching indipendente. PTGui ha incorporato il meglio delle PanoTools (plug-in compresi), portandone a compimento lo sviluppo in maniera estremamente efficace. Tuttavia i concetti che troverete in questo articolo a riguardo di PTGui sono tranquillamente applicabili anche alle altre GUI , dato che il motore di calcolo sul quale poggiano è sempre lo stesso.

Nota del 24-dic-2005: per gli utenti MacOsX l'applicazione attualmente più sviluppata è PTMac, appena presentata in release 3.1. Si consiglia di installare i plug-in "Nona" (motore stitcher esterno) ed "Enblend" (blender esterno). Ringrazio Andrea Gatta per le preziose informazioni fornite.

Queste sono le caratteristiche salienti della versione attuale, PTGui 5.5:

- Creazione di Stitch con proiezione Rettilineare, Cilindrica ed Equirettangolare, partendo da un numero qualunque di immagini;
- Supporto in ingresso i formati JPEG, TIFF, PNG e BMP
-
Ricerca automatica dei control points e interfaccia grafica per la loro gestione (aggiunta ed eliminazione)
-
Anteprima in tempo reale dello Stitch finale
- Lettura dei dati EXIF incorporati nelle immagini prodotte dalle fotocamere digitali, al fine di determinare i parametri dell'ottica utilizzata (solo per formato JPG)
-
Supporto per le ottiche decentrabili (tilt-shift)
- Supporto per ottiche grandangolari con angolo di campo fino a 110°. Sono supportati angoli di campo di oltre 180° (fish-eye) installando lo stitcher di Panotools modificato.
- Supporto del multi-tasking: il calcolo delle immagini finali è eseguito in processi background che consentono di continuare a lavorare sul altri progetti.
- Tecnologia "Pattern matching" che permette un accurato posizionamento manuale dei control points.
-
Ottimizzatore di Stitch avanzato, che consente di effettuare la giunzione di scatti eseguiti anche a mano libera . E' inoltre possibile configurare manualmente i parametri da ottimizzare, rendendo possibili anche operazioni come il sandwich di più fotogrammi.
-
Dimensioni massime dello Stitch nell'ordine dei GigaPixel
- Formati di uscita JPG, TIFF e PSD (Photoshop)
-
Supporto completo dei 16 bit/canale, con uscita su TIFF e PSD
-
Supporto per immagini in uscita multi-layer (TIFF e PSD), nelle quali è possibile modificare a posteriori i margini delle transizioni da fotogramma a fotogramma.




7- PTGui: preparazione delle immagini e impostazioni iniziali

Siamo arrivati al fatidico momento di realizzare uno Stitch, utilizzando una serie di quattro immagini scattate alla Chiesa di S.Romolo a Colonnata, nel comune di Sesto Fiorentino. Ho scelto uno Stitch molto semplice, a singola riga , per rendere più agevole l'illustrazione dei vari passaggi.
In realtà ho eseguito una doppia serie di scatti, una utilizzando la testa panoramica, l'altra scattando a mano libera. L'intento è quello di mettere a confronto uno Stitch "ideale" e uno Stitch "di fortuna", al fine di mettere in luce i problemi che si riscontrano quando gli scatti non sono stati effettuati routando la fotocamera intorno al punto nodale dell'obiettivo. Per rendere più visibile il problema, ho scelto un'immagine in cui esistono oggetti sia in primo piano (la pavimentazione) che in lontananza (la Chiesa), e piena di elementi geometrici nei quali non sarà difficile scorgere gli eventuali problemi di giunzione dei singoli fotogrammi.
E' stata utilizzata una Nikon D70 con ottica fissa da 20mm, equivalente ad un 30mm sul formato tradizionale 135. Tempo di scatto utilizzato1/200sec, diaframma f/11, modalità RAW. Le immagini sono poi state convertite con Adobe Camera Raw 3.3 , utilizzando un profilo creato ad hoc per la mia D70, per una temperatura colore di 5000°K (daylight). In Camera Raw sono state impostate le seguenti preferenze di uscita:


Esempio di impostazioni in Adobe Camera Raw

Di particolare importanza, oltre all'impostazione dello spazion colore, è la scelta dei 16bit/canale che consente di elaborare anche pesantemente i fotogrammi, senza perdere preziose sfumature colore e i più delicati passaggi tonali. Naturalmente tutte le immagini devono essere convertite con le stesse identiche impostazioni di Camera Raw.
Al termine le immagini convertite sono state salvate in formato TIFF non compresso.

A questo punto si apre PTGui 5.5, che all'avvio si presenta così:

La prima da cosa da fare è saltare la procedura guidata (che non fornisce i migliori risultati) e cliccare su "Advanced". Si visualizzano così tutte le cartelle del progetto:

A questo punto si apre la cartella "Source Images" e, utilizzando il tasto in basso "Add" si aprono tutti i fotogrammi in formato TIFF che comporrano il nostro Stitch finale:

Come si vede, le immagini sono nella giusta sequenza, ovvero da sinistra verso destra. Se così non fosse, utilizare i tasti "Move Up" e "Move Down", oppure "Sort" per cambiare l'ordine dei fotogrammi.




8- PTGui: Lens Settings

Adesso si apre la cartella successiva "Lens Settings" nella quale si dovranno inserire i dati relativi all'ottica utilizzata per gli scatti:

Il campo "lens type" definisce il tipo di obiettivo utilizzato: per gli obiettivi di normale utilizzo (sia tele che grandangoli) si deve impostare "Rectilinear", mentre per i fish-eye (a riproduzione circolare) si deve impostare "Circular".

Nota: il motore stitching di PTgui è limitato ad angoli di campo di massimo 110°. Nel caso si utilizzino ottiche con angolo di campo superiore, è necessario installare le librerie Panotools e poi sostituire il file pano12.dll (situato nella directory Windows/System32) con la versione 2.8.0 MinGW opportunamente modificata per supportare obiettivi con angoli di campo di oltre 180°. Per utilizzare lo stitcher modificato è sufficiente selezionarlo nella cartella "Optimize".

Successivamente si devono valorizzare i campi "Focal Lenght" (la focale dell'obiettivo, 20mm) e "Focal Lenght multiplier", ovvero il fattore moltiplicativo risultante dal rapporto tra il lato lungo del formato 135 classico e il lato lungo del sensore della fotocamera. Nel caso della mia Nikon il rapporto è 36mm/23.6mm = 1,52.
E' importante essere molto precisi nell'individuazione di questi parametri, perchè in questo modo PTGui potrà eseguire i calcoli successivi conoscendo esattamente l'angolo di campo inquadrato
(Field of View, FoV). Le dimensioni del sensore sono normalmente scritte nel manuale della fotocamera, oppure si possono reperire su siti web specializzati come l'ottimo Digital Preview. Nel caso si utilizzino immagini JPG direttamente scaricate dalla fotocamera, PTGui riesce a recuperare questi dati direttamente dai dati EXIF scritti all'interno dei JPG.
Dopo aver inserito questi dati, PTGui calcola l'angolo di campo orizzontale degli scatti (nel nostro esempio 43°):
avendo utilizzato la fotocamera in posizione verticale ed essendo il lati del sensore in rapporto 3:2, l'angolo di campo verticale dello Stitch finale sarà di circa 60°.

Nel riquadro "Advanced" troviamo altri importanti valori, come ad esempio quelli relativi alla distorsione dell''obiettivo (a, b e c). Sebbene questi valori possano essere individuati e poi inseriti manualmente, consiglio vivamente di lasciare che vengano determinati autamaticamente da PTGui.

Nel caso in cui si sia fatto uso di ottiche decentabili (Tilt/Shift), vanno invece inseriti manualmente i valori relativi ad "Image shift". Le ottiche decentrabili sono molto utili nelle riprese Panoramiche eseguite con l'ausilio della testa panoramica: in questi casi infatti, dovendo mantenere la fotocamera in bolla, si finisce spesso per inquadrare molto selciato a discapito del soggetto che normalmente è situato nella parte alta del fotogramma. Utilizzando un'ottica decentrabile si risolve il problema perchè si può muovere in alto l'inquadratura senza spostare la fotocamera, ottenendo immagini come quella che segue:


Esempio di Stitch panoramico eseguito con ottica decentrabile e ricostruito con proiezione Rettilineare

Il dato del decentramento va inserito in pixel, e non in millimetri. Supponendo di aver decentrato l'ottica di 2mm, bisogna inserire il numero di pixel che il nostro sensore conta all'interno di questa misura: nel caso di una Nikon D70, il calcolo porterebbe a 3008pixel / 23,6mm * 2mm = 255 pixel.
Nel nostro caso l'ottica utilizzata non è decentrabile, dunque abbiamo lasciato il valore 0.




9- PTGui: Panorama Settings. I tre tipi di proiezione supportati

La cartella successiva è "Panorama Settings":

In questa cartella si specifica il tipo di proiezione che si vuole ottenere, scegliendo tra Rettilineare, Cilindrica ed Equirettangolare (o Sferica). Questa impostazione potrà essere cambiata nelle fasi successive, in particolare nel Panorama Editor. Ecco in breve le caratteristiche salienti di ciascun tipo di proiezione:

Proiezione Rettilineare.
Geometricamente parlando, si tratta della proiezione di un'immagine sferica su di un piano ad essa tangente. Immaginate la scena tridimensionale "avvolta" su una sfera: l'immagine finale è ottenuta proiettando i singoli punti della superficie sferica sul piano, utilizzando rette che passano per il centro della sfera. Questo tipo di proiezione è quello tipico del nostro sistema visivo e, naturalmente, quello degli obiettiivi fotografici "normali" (non fish-eye). La proprietà più interessante di questo tipo di proiezione è che non vengono introdotte distorsioni sulle linee: tutte le linee dritte della scena reale vengono riprodotte dritte nello Stitch finale. Si tratta dunque di un'ottima scelta per le immagini di architetture.
Il problema della proiezione rettilineare è che la qualità si degrada sempre di più quando ci si allontana dal punto di tangenza con la sfera. In teoria il limite è 180° di angolo di campo (per il quale lo Stitch avrebbe lunghezza infinita!), ma in pratica
non conviene utilizzare questa proiezione per immagini finali con più di 100 gradi di angolo di campo, pena una marcata perdita di qualità ai lati dovuta ad un eccessivo stiramento dei fotogrammi ai bordi dello Stitch.
Per ottenere immagini con angolo di campo ampio conviene utilizzare le altre due proiezioni disponibili in PTGui.

Proiezione Cilindrica.
In questo caso si effettua la proiezione di un'immagine sferica su di un cilindro ad essa esterno. E' un po' come avvolgere il nostro foglio di carta attorno alla sfera sulla quale è "avvolta" l'immagine, e proiettare su di esso i punti della sfera con rette che passano per il centro della sfera stessa.
Utilizzando questo tipo di proiezione si elimina il limite dei 180° di angolo di campo orizzontale tipico della proiezione rettilineare, ma quello verticale limane ugualmente limitato.
Di fatto con la proiezione Cilindrica possiamo ottenere stampe che coprono i 360° in orizzontale e al massimo 100°-120° in verticale.
Attenzione però: la proiezione cilindrica non presenrva le linee dritte, fatta eccezione per le linee verticali e la linea dell'orizzonte: tutte le altre linee saranno incurvate.

Proiezione Equirettangolare.
Questo tipo di proiezione consente di mappare l'intera sfera secondo le coordinate di latitudine e di longitudine
. E' molto utilizzata in applicazioni non-fotografiche come QTVR (Quick Time Virtual Reality), dove il software permette la "navigazione" all'interno della scena virtuale. La proiezione equirettangolare può anche essere utilizzata in fotografia, anche se questo implica distorsioni di superfici, angoli e linee (quest'ultime tranne le verticali e l'orizzonte). Un classico e conosciutissimo esempio della proiezione equirettangolare è la mappa del mondo:


La sfera terrestre mappata su un piano, con proiezione Equirettangolare.

Il margine sinistro corrisponde al margine destro, mentre i due poli sono rappresentati da due rette poste ai margini alto e basso dell'immagine. Le distanze orizzontali e vericali rilevate sulla stampa sono proporzionali alle differenze di latitudine/longitudine della sfera.
E' conveniente utilizzare la proiezione Equirettangolare quando l'angolo di campo verticale è ampio (maggiore di 80 gradi), tale percui la proiezione cilindrica evidenzia una marcata perdita di qualità nella parte superiore ed inferiore dello Stitch finale. Quando invece l'angolo di campo verticale è modesto, questo tipo di proiezione fornisce risultati molto simili alla proiezione cilindrica.

Tornando al nostro esempio, trattandosi di architettura, ho scelto la proiezione Rettilineare. L'angolo di campo orizzontale dovrebbe essere contenuto entro i 100°, dunque non dovrebbero sussistere forti perdite di qualità ai bordi.

La cartella successiva a Lens Settings, denominata "Crop", può servire a ritagliare i singoli fotogrammi prima dell'operazione di giuntatura, una funzione poco utile fatta eccezione per i casi in cui si utilizzano ottiche fish-eye, dove è necessario selezionare il circolo di immagine.




10- Yaw, Pitch e Roll: l'orientamento della fotocamera in tre parametri

Si passa adesso alla cartella successiva "Image Parameters", dove è possibile introdurre per ciascun fotagramma l'esatta posizione spaziale della fotocamera (definita con Yaw, Pitch e Roll), nonchè i singoli valori caratteristici dell'obiettivo.
Potendo misurare con assoluta precisione tutti questi valori, si potrebbe procedere allo Stitch in modalità manuale. Tuttavia ciò è improponibile all'atto pratico, quindi si demanda sempre al processo automatico di ottimizzazione (PTGui Optimizer) la ricerca di questi valori.

Tuttavia è utile far chiarezza sul significato dei valori che indicano l'orientamento della fotocamera, in modo da rendere più comprensibile l'intero processo di Stitching:


Interpretazione dei parametri relativi all'orientamento della fotocamera: Yaw, Pitch e Roll.

- Yaw: è la rotazione orizzontale della fotocamera attorno al punto nodale, espressa in gradi. In pratica corrisponde all'orientamento sinistra/destra.
-
Pitch: è la rotazione verticale della fotocamera attorno al punto nodale, espressa in gradi. In pratica corrisponde all'orientamento alto/basso.
-
Roll: è l'inclinazione della fotocamera, espressa in gradi.

Quando si esegue uno Stitch a singola riga e si opera su cavalletto, la fotocamera è posizionata in bolla e quindi virtualmente Roll e Pitch valgono zero per tutti gli scatti. Per eseguire lo Sticth si eseguirà unicamente la rotazione da sinistra verso destra, variando dunque il solo Yaw.
Negli Stitch a griglia invece avremo il solo Roll sempre uguale a zero, mentre avremo valori diversi di Pitch per ciascuna riga di scatti e valori diversi di Yaw per ciscuna colonna.
All'atto pratico è generalmente preferibile fare ottimizzare in automatico anche questi valori, dato che anche il benchè minimo errore di livellamento della fotocamera genera valori diversi di Pitch e Roll, provocando errori in fase di collimazione degli scatti.
In definitiva la cartella "Image Parameters" può essere molto utile soprattutto per visualizzare le impostazioni che vengono generate dall' Optimizer .




11- PTGui: generazione automatica dei Control Points

La cartella successiva "Control Points" è molto importante, perchè qui vengono generati in automatico e poi eventualmente modificati i punti di coincidenza tra gli scatti di uno Stitch. Si inzia generando in automatico i Control Points:



Vengono generati 15 control points per ciascuna coppia di scatti che hanno aree in comune (questa quantità è personalizzabile in Tool / Options / Control points generator). Negli Stich a singola riga , generalmente ciascuno scatto ha un set di 15 control points sia con l'immagine prcedente che con quella seguente. Nel caso degli Stitch a griglia invece ciascuno scatto può avere fino a quattro sets di control points, dato che le aree di sovrapposizione possono esistere anche in alto e in basso.

Una volta generati i Control Points, questi possono essere visualizzati, cancellati e aggiunti, usando il doppio riquadro grafico:



In questo momento stiamo osservando i Control Points "normal" (CP) trovati tra l'immagine 0 e l'immagine 1. Come si vede i punti sono stati trovati in maniera omogenea, coprendo l'intera area di sovrapposizione tra i due scatti. Ecco come valutare i CP individuati:
- Se la ricerca automatica trova pochi CP, oppure sono troppo raggruppati, è utile aggiungere qualche punto col metodo manuale.
- Se alcuni CP sono stati individuati su oggetti dell'immagine dei quali si dubita circa la stabilità (nuvole, erba mossa dal vento, ecc.), può essere utile eliminarli e aggiungerne di nuovi in aree di sovrapposzione più affidabili. Nel nostro caso potremmo eliminare il CP14 e il CP15.
-
Quando si scatta a mano libera e nell'immagine ci sono oggetti ravvicinati (come la pavimentazione del nostro esempio), i CP posti sul primo piano tenderanno a generare errori più alti di sovrapposizione, dato che sul primo piano esiste un maggiore errore di parallasse. Vale a dire che nel tentativo di far coincidere i CP del primo piano, si rischia di compromettere la resa delle giuntature anche laddove il problema della parallasse è quasi inesistente, cioè sullo sfondo (nell'esempio, la Chiesa).
Può dunque essere utile eliminare i CP che cadono nel primo piano (ad esempio il CP 13). Sarà compito dell'agoritmo di Blending minimizzare l'impatto visivo dei disallineamenti. Tuttavia, dato che nell'esempio abbiamo ruotato la fotocamera sul punto nodale, possiamo tranquillamente lasciare (e magari aumentare) i CP sul primo piano.

Diamo adesso una rapida descrizione ai comandi presenti nell'interfaccia "Control Points":

- Tab numerici: indicano il numero di immagine visualizzata. Selezionare numeri diversi (es: 0 e 1) per analizzare i CP in comune tra le due immagini. Nel caso non compaiano CP, molto propbabilmente le due immagini non hanno aree di sovrapposizione in comune.

- CP type: generalmente impostato su "normal", indica che si tratta di punti di coinidenza. Esistono anche i punti "Vertical" e "Horizontal" che servono solo a derminare le ortogonalità all'interno dell'imagine finale. Li affronteremo nel prossimo articolo.

- Optimize: normalmente sempre attivato, indica che l'Optimizer terrà conto dei CP inseriti.

- Rotate: per comodità di lavoro, le immagini possono essere ruotate di 90, 180 o -90 gradi . Questa impostazione non modifica il progetto, ma la sola visualizzazione in questa cartella.

- Zoom: imposta il livello di ingrandimento delle immagini visualizzate. Con i tasti Ctrl+ e Ctrl- si agisce sullo zoom per passi successivi. Muovendosi sull'immagine con il tasto destro del mouse premuto, si naviga all'interno dell'immagine.

- Prev e Next, determinano il salto alla coppia di immagini precedente/successiva.




12- PTGui: immissione/ modifica/ eliminazione manuale dei Control Points

Per inserire un nuovo CP, è sufficiente individuare un punto significativo nell'immagine di sinistra (cliccando col tasto sinistro del mouse) per poi individuare lo stesso punto nell'immagine di destra. Il nuovo CP immesso verrà visualizzato sia in forma grafica all'interno delle due immagini, sia nel tabellino riepilogativo in basso a destra.
Durante l'individuazione dei CP, PTGui offre vari ausili per rendere il lavoro più preciso e rapido.

- La lente di ingrandimento virtuale è sempre attiva , rende molto più facile il posizionamento. Il tasto "Contr." aumenta il contrasto all'interno della lente, se attivato.

- Il rallentatore di movimenti del mouse, che si attiva tenendo premuti Ctrl e Alt durante il movimento sull'immagine, facilita il posizionamento sul punto desiderato.

- Zoom: come visto in precedenza, gestisce l'ingrandimento dell'immagine, e dunque può essere utile per aumentare la precisione.

- Jump: questa funzione è attiva solo dopo aver immesso almeno due CP (manualmente oppure automaticamente). Jump è un ausilio all'inserimento manuale dei CP: una volta individuato il punto di interesse nell'immagine di sinistra, PTGui ci posiziona automaticamente sullo stesso punto nell'immagine di destra, basandosi sulla geometria dei CP precedenti e sul pattern dell'immagine. La conferma dell'immissione è comunque manuale, dunque è possibile correggere la posizione nel caso questa non sia stata individuata correttamente.

- Auto: è la stessa funzione di Jump, ma il secondo punto viene direttamente confermato, ammesso che la precisione della coincidenza superi un livello di soglia (default: 50%). In caso contrario la funzione Auto coincide con Jump.

- Table: è la lista completa di tutti i CP del progetto; la cartella "Control Points assistant" fornisce inoltre una utilissima indicazione di massima della quantità e della distribuzione dei CP presenti.

Per spostare un CP è sufficiente trascinarlo tenendo premuto il tasto sinistro del mouse (quando siamo su un CP, il puntatore si trasforma da crocetta a freccina).

Per cancellare un CP è necessario agire sulla tabella di riepilogo in basso a destra, cliccare col tasto destro sul CP desiderato, e scegliere "Delete" dal menù contestuale. Cliccando invece col tasto sinistro si rintraccia il CP all'interno delle immagini.


Esempio: cancellazione del CP 14 utilizzando il tasto destro del mouse.




13- PTGui: Ottimizzazione automatica dei parametri

Facciamo il punto della situazione: abbiamo aperto le immagini che costituiranno lo Stitch finale, abbiamo impostato i dati relativi all'angolo di campo dell'ottica usata, abbiamo scelto il tipo di proiezione, abbiamo generato automaticamente i Control Points ed infine li abbiamo adeguati alle nostre esigenze, cancellando quelli "dubbi" e aggiungendone eventualmente di nuovi in modo manuale. Adesso PTGui ha tutti i dati necessari per poter completare i dati mancanti: questo processo si chiama "ottimizzazione", ed è anch'esso configurabile in base alle esigenze del progetto:



In questa prima schermata dobbiamo scegliere la "Anchor Image", ovvero lo scatto che starà al centro dell'immagine finale: a questa immagine PTGui assegnerà Yaw=0 e verranno ottimizzati solo Pitch e Roll. Nel nostro esempio ho indicato l'immagine 1, ovvero la seconda da sinistra.
Se i dati relativi all'angolo di campo dell'ottica (lunghezza focale e fattore moltiplicativo) sono stati introdotti correttamente, è consigliabile inizialmente togliere la spunta da "Optimize lens FoV"; successivamente, una volta analizzati i dati della prima ottimizzazione, può essere utile provare a lanciare di nuovo l'Optimizer con "Optimize Fov" attivato per verificare se e quali miglioramenti si ottengono.
Impostare infine "Minimize lens distortion" su "medium", in modo da ottimizzare solo il parametro "b". Questa scelta è consigliata dal software stesso.

Nota: La cartella "Optimizer" ha anche un'interfaccia avanzata, che si attiva cliccando su "Advanced", tuttavia per questo tipo di applicazioni non è necessario sfruttare questa modalità, che sarà esplorata nel corso dei futuri articoli riguardanti l'estensione della gamma dinamica e della profondità di campo.

Lanciamo quindi l'ottimizzazione, cliccando sul tasto "Run Optimizer".


Risultato dell'ottimizzazione, scatti eseguiti con testa panoramica.

Nella schermata sopra l'Optimizer ci fornisce i dati con i quali ha completato il processo e alcuni indici di qualità relativi ai Control Points. L'indice di qualità è anche sintetizzato in aggettivi quali "bad" (pessimo), "not so bad" (sufficiente), "good" (buono) e "very good" (ottimo) che si basano sulla media degli errori (Average CP distance). Nell'ultima riga sono riportati i valori ottimizzati relativi ad angolo di campo e distorsione: il FoV è rimasto di 43° in quanto abbiamo deciso di non ottimizzarlo, mentre il parametro "b" della distorsione è stato calcolato di -0,014 (un valore medio/basso).

Se abbiamo utilizzato treppiede e testa panoramica (come nel nostro caso), un errore medio (Average) piuttosto alto potrebbe significare che:

- abbiamo impostato male le slitte della testa panoramica, dunque non abbiamo ruotato la fotocamera sul punto nodale; se così fosse bisogna agire come se avessimo scattato a mano libera, cercando di modificare i CP per la massima qualità dello sfondo (eliminare i CP in primo piano).
- abbiamo inserito dati errati relativi all'angolo di campo dell'obiettivo: correggerli e far girare di nuovo l'Optimizer.
- ci sono Control Points posizionati male, oppure posizionati su oggetti che si sono mossi tra uno scatto e l'altro. Questi casi sono riconoscibili anche dal parametro "Maximum distance", che finisce per assumere valori molto più alti del valore medio. Verificare successivamente la situazione dei CP digitando Ctrl+B oppure cliccando sul tasto . Così facendo appare la Control Point Table, che contiene la lista di tutti i CP del progetto e per ciascuno di essi è indicato il parametro "Distance", ovvero l'errore calcolato dall'Optimizer. Cliccando sulla colonna "Distance" è possibile ordinare i dati in base all'entità dell'errore, funzione molto comoda per avere a poratta di mano tutti i CP più critici. Una volta selezionato un CP, è possibile cancellarlo oppure visualizzarlo nella cartella "Control Points", utilizzando i tasti "Delete" e "Go to" posti in fondo alla lista. Le stesse operazioni sono disponibili aprendo il menù contestuale, cliccando col tasto destro del mouse:


Dalla lista dei CP è possibile cancellare un CP oppure passare direttamente alla sua visualizzazione, con "Go to".

Per quanto riguarda il nostro progetto, i risultati sono davvero buoni (lo scostamento medio di giunzione è di appena 1,3 pixel!), dunque accettiamo i parametri proposti cliccando sul tasto OK. La validità dei risultati è dovuta essenzialmente all'uso della testa panoramica, infatti nella prova che ho eseguito sulla stessa scena, scattando però a mano libera, ho ottenuto risultati peggiori:

a.
b.
Risultati di ottimizzazioni del progetto con scatti eseguiti a mano libera.

Nella schermata (a) si vede l'ottimizzazione ottenuta con i CP distribuiti su tutta l'area di sovrapposizione, dal primo piano allo sfondo. Si nota chiaramente l'effetto degli errori di parallasse, in quanto la media degli errori di giunzione è passata da 1,26 pixel a 4,88 pixel.

Nella schermata (b) si nota invece l'
ottimizzazione eseguita dopo aver eliminato tutti i CP posizionati nel primo piano degli scatti: l'errore medio risulta dimezzato rispetto al caso precedente, appena 2,14 pixel. Questa soluzione porta normalmente a sovrapposizioni migliori nelle aree a basso/nullo errore di parallasse, perchè l'Optimizer potrebbe essere "ingannato" dalla presenza di molti CP su aree in primo piano (con alto errore di parallasse). Resta inteso che sul primo piano si avranno comunque gli inevitabili errori di collimazione.

Nello schema che segue ho messo a confronto le due tecniche di scatto, mostrando i dettagli di sfondo e primo piano in arre di giunzione tra fotogrammi:

Stitch eseguito con testa panoramica
Stitch eseguito
a mano libera
Errori di giunzione a confronto.

Oltre alle leggerissime differenze tonali (dovute probabilmente ad una lieve vignettatura), si notano gli errori di giunzione che appaiono davvero minimi con l'uso della testa panoramica, mentre nel caso degli scatti a mano libera gli errori sono abbastanza evidenti. Come vedremo più avanti, il Blender di PTGui gestisce benissimo questi contenuti errori di giunzione e le immancabili varazioni tonali .




14- PTGui: il Panorama Editor

Una volta completata l'ottimizzazione, è il momento di passare a quella che può essere definita la rifinitura o l'impaginazione dell'immagine finale: si apre l'interfaccia "Panorama Editor" premedo Ctrl+E oppure cliccando sul tasto .
Otteniamo in questo modo il primo sguardo sul nostro Stitch anche se, come appare evidente, ci sarà bisogno di ulteriori interventi:


Avvio di Panorama Editor

Quello che osserviamo sopra è l'ottimo lavoro svolto da Optimizer, sul quale dobbiamo intervenire per centrare, ritagliare e livellare l'immagine secondo i nostri gusti ed esigenze. Inizialmente Panorama Editor è impostato sull'editing dei singoli scatti; nell'esempio è selezionata l'immagine 1, come si vede dalla grafica (è illuminata) e dal selettore di immagini in alto a sinistra.
Notiamo innanzitutto che al centro dello Stitch (indicato dai due assi) c'è il centro dell'immagine 1, ovvero la "Anchor Image" scelta nelle impostazioni dell'Optimizer .
Utilizzando lo strumento automatico "Center Panorama" (Ctrl+C oppure tasto ) è possibile centrare l'immagine rispetto al riquadro; nel nostro caso tuttavia è meglio procedere manualmente, dato che si vuole centrare orizzontalmente l'edificio della Chiesa, non l'intera immagine.
Per fare questa operazione bisogna innanzitutto passare alla modalità "Editing dell'intera immagine" (Ctrl+P oppure tasto ) e poi selezionare lo strumento "Set Center point" (tasto ): a questo punto ho cliccato a metà dell'edificio, sempre rimanendo sull'asse orizzontale per non alterare la verticalità delle linee:


Con lo strumento "Set Center Point" abbiamo riposizionato il centro dell'edificio nel centro dell'immagine.

Nota: l'operazione di centratura può essere effettuata anche trascinando l'immagine (con il tasto sinistro del mouse premuto), ma con un minor livello di precisione.

A questo punto è bene fare un precisazione: al fine di riprodurre correttamente le linee verticali della scena, l'altezza del Center point deve corrispondere al livello dal quale è stata eseguita la ripresa.
Nel nostro caso, avendo mantenuto la fotocamera perfettamente in bolla (Pitch=0, condizione necessaria con teste panoramiche non-sferiche), il livello di ripresa corrisponde esattamente alla mezzeria del fotogramma. Dunque l'impostazione iniziale in Panorama Editor, per quanto riguarda il l'asse orizzontale, è corretta, salvo correzioni di minima entità.

Negli altri casi, ovvero quando la fotocamera è stata puntata verso l'alto o verso il basso, il Center Point deve essere ricollocato all'altezza del punto di ripresa. Nell'esempio sottostante (uno Stitch verticale di tre fotogrammi eseguito a mano libera) l'asse orizzontale è stato posto a circa due metri dal suolo, che corrisponde più o meno alla mia altezza:

Come si vede, questa impostazione ha permesso di ottenere linee verticali riprodotte perfettamente. Alzando o abbassando l'asse orizzontale del Panorama Editor, si ottengono linee verticali divergenti rispettivamente verso l'alto o verso il basso.

Tornando al nostro progetto, il passo successivo è ritagliare la zona utile dell'immagine: anche in questo caso possiamo utilizzare uno strumento automatico chiamato "Fit Panorama" (Ctrl+F oppure tasto ):


Impostazione manuale dell'angolo di campo, utilizzando i due cursori.

Come si vede nella figura sopra, l'automatismo ha ritagliato la porzione utile di immagine, mantenendo la centratura impostata in precedenza. Rimane adesso da ritagliare ulteriormente l'immagine per raffiguarare il solo edificio: per fare questo è sufficiente restringere ulteriormente l'angolo di campo utile, muovendo i due cursori ai lati dell'immagine (cerchiati in rosso).
Nota: è molto importante ritagliare lo Stitch in questa fase, sia perchè così facendo si riesce ad essere più precisi sugli eventuali ultimi ritocchi di allineamento e prospettiva, sia per ridurre in maniera considerevole il peso dell'immagine ed i relativi tempi di calcolo.


Il lavoro di preparazione dell'immagine è completato.

Bene, questa è l'impostazione finale del nostro Stitch. Il risultato sembra valido, la scelta della prospettiva Rettilineare è sostenibile, dato che l'ampiezza dello Stitch è al di sotto dei 100° fatidici. Nel caso fosse stata necessaria ina visuale più ampia della piazza, avremmo sicuramente dovuto rinunciare a questa prospettiva, a favore della Cilindrica o della Equirettangolare (usando gli appositi tasti ). Come detto in precedenza, abbandonando la Rettilineare si ottiene una qualità ottima anche per angoli orizzontali fino a 360°, ma curvano vistosamente le linee orizzontali (tranne la linea centrale, l'orizzonte):



Progetto impostato per proiezione Cilindrica ed Equirettangolare: le linee orizzontali divengono curve, tranne l'asse orizzontale.

Nota: la proiezione Cilindrica è la stessa che viene utilizzata dalle fotocamere analogiche ad ottica ruotante, come ad esempio la Horizon.

Nel prossimo paragrafo vedremo come effettuare un'anteprima di qualità e successivamente come realizzare l'immagine finale ad alta risoluzione. Prima di procedere è tuttavia utile menzionare altri due strumenti, molto utili soprattutto quando si scatta a mano libera.
PTGui 5.5 ha un nuovo strumento automatico chiamato "Straighten" che tenta di individuare il miglior settaggio dei paramentri di Panorama Editor, in modo da ottenere un'immagine ben livellata, con linee verticali riprodotte correttamente. La funzione si attiva premendo Shift+Ctrl+S (oppure cliccando sul tasto ) e fornisce normalmente buoni risultati: tuttavia in alcuni casi l'algortimo non trova i necessari riferimenti e la correzione non viene effettuata.

Si opera allora manualmente provando a spostare verticalmente il centro dello Stitch ed eventualmente ruotando (Roll) l'intera immagine, operazione che si effettua entrando in Edit entire panorama e trascinando il mouse sull'immagine con il tasto destro premuto. Ho utilizzato proprio questi due strumenti per riallineare lo Stitch effettuato a mano libera:


Riallineamento dello Stitch effettuato a mano libera.

La giusta posizione dell'asse orizzontale è, come si vede, ai piedi della scalinata della Chiesa, in quanto la mia posizione di ripresa era molto bassa, dato che la piazza è in leggera pendenza verso il punto di ripresa.

Nota: esiste un altro sistema per impostare l'orizzonte e/o le linee verticali, aggiungendo cioè al progetto alcuni Control Points particolari (chiamati t1 e t2), che analizzeremo approfonditamente nel prossimo articolo.




15- PTGui: il Preview dello Stitch

Una più precisa valutazione del lavoro svolto può essere svolta facendo un'Anteprima (Preview) dello Stitch finale. Nel caso si rilevassero imprecisioni, è sempre possibile modificare il progetto per cercare di rimediare, agendo sui Control Points, sull'Optimizer oppure nel Panorama Editor.
L'Anteprima viene costruitta utilizzando gli stessi algoritmi avanzati utilizzati per la creazione dello Stitch finale (Blender compreso), ma il tempo impiegato per il calcolo è molto inferiore. Vediamo il perchè:

- la risoluzione dell'Anteprima è generalmente molto bassa rispetto all'immagine finale: consiglio di impostare una risoluzione che sia interamente visualizzabile dal nostro monitor (1024, 1280 o 1600 pixel sul lato orizzontale, a dipendenza dei modelli).
- l'Anteprima viene calcolata con profondità colore pari a 8 bit/canale, anche se gli scatti sono a 16bit/canale.
- l'interpolazione utilizzata è piuttosto semplificata, quindi più veloce.
- l'Anteprima non contiene elementi grafici aggiuntivi come ad esempio i Layers, come invece è possibile avere nello Stitch finale
- nel caso si debba controllare solo una certa area dell'immagine, è possibile eliminare dal calcolo gli scatti non interessati.



Nel nostro esempio ho impostato la risoluzione orizzontale di 1280pixel, mentre quella verticale è stata calcolata da PTGui in base alle proporzioni dell'immagine.
Per avere un'ordine di grandezza, riporto i tempi di calcolo rilevati con il nostro Stitch: Anteprima circa 16 secondi, Stitch finale alla massima risoluzione 4'21".

Nota: Lo Stitch finale è di circa 11 Mpixel, con profondità colore 16bit/canale, interpolazione Bicubica, formato di uscita PSD senza layers,. Il computer utilizzato è un Pentium4 HT con clock a 3.0GHz, RAM installata 2 Gb, Hard disk serial-ATA da 120 Gb. La richiesta massima di spazio su hard disk è stata di 1,2 Gbyte, mentre la richiesta di RAM è stata di circa 600Mbyte. Nel caso la RAM installata non fosse stata sufficiente, Windows avrebbe fatto ricorso al paging su disco, determinando tempi di calcolo maggiori.

Nota: Nel menù Tools / Options / Directories & files è possibile indicare un programma di visualizzazione immagini diverso da quello di default.




16- PTGui: la creazione dello Stitch finale

Siamo giunti al passo finale del nostro lavoro, la creazione dello Stitch finale ad alta risoluzione. Si apre la cartella "Create Panorama", che si presenta così:



I dati da inserire in "Create Panorama" sono i seguenti:

- Dimensione dello Stitch in pixel. Per ottenere la massima qualità di uscita, è consigliato cliccare si "Set optimum size" e scegliere "Maximum size". Si possono scegliere anche risoluzioni inferiori inserendo il numero di pixel di un lato dell'immagine, lasciando che PTGui calcoli i pixel dell'altro lato per mantenere le giuste proporzioni (non togliere la spunta da "Lock aspect ratio and FoV")

- Formato del file di uscita (File format). Sono disponibili il JPG (scelta sconsigliata se si devono eseguire post-elaborazioni), il TIFF e il PSD (Photoshop). Questi ultimi due formati sono sicuramente quelli da utilizzare per i migliori risiltati, anche perchè consentono di avere profondità colore 16bit/canale e l'uscita multi-layer.

- Settings: per i JPG è possibile scegliere la compressione, mentre per TIFF e PSD è possibile scegliere tra 8 e 16bit/canale di profondità colore. Quest'ultima proprietà è molto interessante, a patto che anche gli scatti sorgenti siano stati importati a 16bit/canale.

- Layers: in questo campo è necessario specificare quali informazioni si desiderano in uscita. In genere è sufficiente indicare "Blended panorama only", anche se l'uscita multi-layer può rivelarsi in alcuni casi molto importante, come vedremo nel prossimo articolo. L'uscita multi-layer è quella che ho utilizzato in precedenza per mostrare gli errori di giunzione.

- Output file: specificare nome e percorso del file di uscita, aiutandosi col tasto "Browse".

- Stitch using: lasciare l'impostazione PTGui. Per chi avesse installato Panotools sul proprio PC, è disponibile anche lo stitcher originale delle Panotools (che però genera files di uscita solo ad 8bit/canale)

- Blend using: inizialmente lasciare l'impostazione "PTGui". E' possibile utilizzare anche plug-in come Enblend e SmartBlend, previa installazione sul proprio PC del software necessario, configurando PTGui nel menù Tools / Options / Plug-in. Nel prossimo paragrafo trovate un approfondimento sul ruolo del blender.

- Use Fast tranform: disabilitare questa funzione al fine di ottenere i migliori risultati.

- Interpolator: il migliori risultati in assoluto si ottengono con l'algoritmo Lanczos, che però è il più lento di quelli disponibili. L'algoritmo "Bicubic normal" è quello di uso generale e fornisce normalmente ottimi risultati.

Impostati tutti i parametri, non rimane che lanciare il calcolo cliccando su "Create Panorama!" e..... attendere!

Importante: al momento di aprire l'immagine finale in Photoshop, è necessario ri-assegnare il profilo ICC relativo allo spazio colore originale (nel nostro esempio: Prophoto), dato che PTGui non lo incorpora automaticamente.




17- Scelta del Blender

Anche il migliore dei progetti Stitch e la migliore ottimizzazione dei parametri non può garantire la perfetta giunzione dei singoli scatti.

Alcuni software (compreso Panotools) tentano di risolvere il problema semplicemente creando transizioni graduali tra un fotogramma e l'altro, rendendo meno percepibile il disallineamento.
Esiste però una controindicazione per questo metodo: nella zona di transizione l'immagine è costituita dalle informazioni dei due scatti, ma essendo queste informazioni non perfettamente sovrapponibili ne scaturisce un'
area visibilmente poco nitida.

Nei casi in cui l'errore di giunzione è relativamente basso è possibile impostare aree di transizione ristrette, di fatto poco percepibili. Con lo stitcher delle PanoTools ad esempio è possibile gestire l'ampiezza di queste aree, impostandone il numero di pixel nel parametro "Feather". Anche PTGui permette questo controllo (blend radius, nel menù Tools / Options / Advanced), mentre in altri software il parametro è prefissato.

Tuttavia, anche agendo sul "blend radius", restano dei limiti: nelle aree uniformi (es: il cielo) vorremmo un radius ampio (per rendere più graduale graduale possibile la transizione) mentre nelle aree con dettagli vorremmo un radius molto ristretto per evitare zone di transizione scarsamente nitide.

I blender di nuova generazione, come ad esempio Smartblend, cercano di interpretare il contenuto dell'immagine per decidere la miglior posizione possibile della transizione, in modo da renderla invisibile. Questi nuovi blender utilizzando di fatto un blend radius variabile, con risultati spesso eccellenti.
C'è però l'altra faccia della medaglia: l'elaborazione è decisamente più lenta di quella dei blender classici.

PTGui incorpora un algoritmo di blending proprietario, che deriva da Enblend (un buon plug-in studiato inizialmente per Panotools).
La fase di "color correction" (quella in cui l'algoritmo armonizza l'esposizione dei vari scatti, agendo anche sulla vignettatura introdotta dalle ottiche) risulta molto valida, mentre la fase di "cucitura" vera e propria non può competere con Smartblend, specie nel risolvere i problemi legati alla parallasse.

ln sostanza il blender interno di PTgui rappresenta un buon compromesso tra qualità e velocità.

Nota (ottobre 2007): importanti novità riguardanti i Blender per PTgui saranno affrontate in un prossimo articolo su PhotoActivity.




18- Conclusioni

Siamo al termine di questa lunga cavalcata, è ora di trarre le conclusioni.
La prima cosa che voglio sottolineare è che, nonostante la lunghezza di questo articolo,
questo procedimento è molto più semplice di quanto sembra: l'importatnte è fare alcune prove e "toccare con mano" gli argomenti trattati. Attualmente impiego non più di dieci minuti a creare un progetto Stitch, a meno che non si presentino difficoltà particolari legate al tipo di ripresa. Il tempo di calcolo può essere anche nell'ordine delle decine di minuti (dipende dai Mpixel dell'immagine finale), ma un buon PC è in grado di sostenere il calcolo e permettere in contemporanea l'esecuzione di altre attività, come ad esempio la preparazione del progetto Stitch successivo!

I risultati sono spesso sorprendenti, sia che si cerchino livelli risoluzione molto alti, sia che abbia il desidero (o l'esigenza) di sperimentare inquadrature panoramiche con angoli di campo altrimenti impensabili.
L'applicazione principe è sicuramente il paesaggio, un'applicazione fotografica dove l'alta risoluzione e la derivante possibilità di stampa su grandi formati è certamente una forte attrattiva. Inoltre il paesaggio normalmente non presenta motivi geometrici ben risconoscibili, rendendo possibile l'utilizzo delle proiezioni Cilindriche ed Equirettangolari senza evidenziarne troppo le tipiche distorsioni.
Per architettura ed interni il discorso cambia, perchè spesso si ha la necessità di rispettare le rigorose geometrie di palazzi, colonnati, piazze e quant'altro. Proprio per questo motivo ho scelto una immagine di architettura come esempio per questo articolo: diamo dunque uno sguardo al risultato finale:


Stitch finale: proiezione Rettilineare, scatti su testa panoramica, punto centrale posto al centro dell'edificio.

Al di là del valore estetico dell'immagine, lo Stitch si può dire ben riuscito: anche ad un esame meticoloso dell'immagine ad alta risoluzione, le giunzioni non sono individuabili. L'immagine, che ha un angolo di campo di 82°x62°, poteva essere catturata con uno scatto singolo solo disponendo di una costosa ottica grandangolare di lunghezza focale 14mm.
Tuttavia, anche se l'angolo di campo è al di sotto dei 100°, la proiezione Rettilineare inizia a mostrare qualche limite. Concentratevi sulle colonne del portico: hanno tutte uguale diametro? In realtà si, ma nell'immagine la colonna a sinistra appare più massiccia delle altre. Non si tratta di un errore, ma dell'effetto "allungamento" che subiscono gli oggetti allontanandosi dal centro dello Stitch:
il punto centrale che abbiamo scelto è al centro dell'edificio, ma non al centro del colonnato, dunque la colonna sinistra è decisamente più distante dal centro della colonna destra.
E' possibile tornare in Panorama Editor e spostare e impostare la zona centrale del portico come centro dello Stitch:


Il punto centrale dello Stitch viene collocato al centro del porticato.

Adesso tutte le colonne distano in ugual misura dal centro dello Stitch. L'immagine che si ottiene è la seguente:


Stitch finale: proiezione Rettilineare, scatti su testa panoramica, punto centrale posto al centro del porticato.

Il problema è risolto, anche se abbiamo necessariamnet introdotto una leggera fuga verso destra (le orizzontali non sono più parallele). L'effetto prospettico è comunque piacevole e molto rispondente all'effetto reale. Tuttavia la "coperta" si rivela corta, dato che il problema che prima affliggeva l'area sinistra, adesso si manifesta a destra, dove lo spigolo dell'edificio appare abbastanza allungato.
Di fatto la tecncica dello Stitching può emulare l'uso di un grandangolare corretto, ma oltre i 70-80° di campo orizzontale c'è da mettere in conto qualche problemino, dato che la proiezione Rettilineare tende ad allungare gli oggetti periferici. In Panorama Editor l'effetto è ben visibile, guardate il diverso trattamento dell'immagine centrale e di quella laterale (la 1 e la 3):


Diverso trattamento degli scatti centrali e perificerici, caratteristico della proiezione Rettilineare.

Una ulteriore annotazione: la proiezione Rettilineare fornisce di fatto un'immagine finale a risoluzione variabile, maggiore al centro e minore in periferia: è dunque importante utilizzare la migliore interpolazione disponibile, nel nostro caso la "Lanczos". Le altre due proiezioni invece, effettuando distorsioni localizzate (e di minor entità) su ciascuno scatto, forniscono una risoluzione costante in tutto lo Stitch finale.

Diamo adesso un sguardo al risultato ottenuto eseguendo gli scatti dalla stessa posizione, ma a mano libera:


Stitch finale: proiezione Rettilineare, scatti eseguiti a mano libera, punto centrale posto al centro del porticato

Il risultato è davvero soddisfacente: ottimo il contributo dell'Optimizer (con successiva eliminazione manuale dei Control Points in primo piano) e davvero splendido il lavoro del Blender. Anche ad una osservazione attenta dell'immagine a piena risoluzione è difficile scorgere problemi di giunzione e/o di aree con scarsa nitidezza. Solo facendo un confronto diretto con l'immagine reale si può notare l'assenza di alcuni piccoli particolari (ovviamente solo nell'area in primo piano), andati persi durante la ricostruzione dell'immagine finale. Dalla media distanza all'infinito (diciamo dai 3-4 metri in poi) l'immagine scattata a mano libera è assolutamente identica a quella scattata con la testa panoramica.
Visto il risultato di questo test si può dunque affermare che, per riprese Stitch generiche, la fotocamera è tranquillamente utilizzabile a mano libera. Permangono tuttavia i limiti dovuti alla presenza di oggeti molto ravvicinati (entro 2-3 metri) e quelli dovuti alle condizioni di illuminazione insufficiente (tempi di scatto lunghi).

Prima di concludere, vediamo qualche esempio di Stitch eseguito con le proiezioni Cilindrica ed Equirettangolare. Laddove la curvatura delle linee orizzontali è accettabile, queste proiezioni conducono sempre ad ottimi risultati : possono essere raggiunti angoli di campo di 360° x 100° con la proiezione Cilindrica (100° è un limite pratico) e addiruttura 360° x 180° con la proiezione Equirettangolare.



S.Romolo a Colonnata, veduta dell'intera piazza. 15 Mpixel, angolo di campo pari a 115°, proiezione Equirettangolare.



Firenze. 23 Mpixel, angolo di campo pari a 85°, proiezione Cilindrica. Sette scatti eseguiti a mano libera.


Due dettagli dell'immagine precedente (pixel reali).



Veduta di Bronnoysund, Norvegia. 28 Mpixel, angolo di campo pari a 100°, proiezione Equirettangolare.
Otto scatti eseguiti a mano libera.


Due dettagli dell'immagine precedente (pixel reali).

Siamo giunti veramente al termine. A questo articolo seguirà presto un Tutorial che tratterà in maniera approfondità l'uso avanzato dei Control Points e l'uscita in formato Photoshop Multi-Layer.
A presto!


Se vuoi parlare con noi di questo articolo vieni a trovarci sul FORUM

E' vietata la riproduzione anche parziale di questo articolo senza il consenso dell' autore.