Immagine, calibrazione e precisione
← Curve Digitizer: digitalizzare le curve dei datasheet
3. Immagine, zoom, pan e coordinate
Apertura dell’immagine
Il comando File → Open image… accetta, tramite la finestra di selezione, file PNG, JPG/JPEG e TIF/TIFF. L’immagine viene caricata in memoria e il progetto registra il percorso assoluto e le dimensioni in pixel.
Aprendo una nuova immagine mentre il progetto corrente contiene modifiche, il programma propone di salvare prima di sostituirlo.
Fit automatico
Dopo il caricamento, il programma adatta automaticamente l’immagine alla dimensione disponibile del Canvas. Il comando View → Fit image to window o il tasto F ripete l’operazione in qualsiasi momento.
Zoom
La rotella del mouse esegue lo zoom mantenendo il pixel sotto il cursore nella stessa posizione visiva. Questo comportamento facilita l’avvicinamento preciso a una curva senza perdere il punto di interesse.
La scala interna è limitata indicativamente tra 0,01× e 50×. Ogni scatto della rotella applica un fattore di circa 1,15.
Pan
Il pan si esegue trascinando con:
- pulsante centrale del mouse; oppure
- pulsante destro del mouse.
Zoom e pan modificano esclusivamente la vista. Non modificano il progetto scientifico, i punti acquisiti o l’immagine sorgente e non fanno parte della cronologia undo/redo.
Rendering della parte visibile
Il Canvas ritaglia e ridimensiona la porzione dell’immagine effettivamente visibile. Questa scelta riduce il lavoro grafico durante zoom e pan, caratteristica particolarmente utile attraverso X11 forwarding.
Coordinate pixel
Quando il cursore è sopra l’immagine, la barra di stato mostra:
Pixel X,Y: 742.318, 518.206
Le coordinate sono riferite all’immagine sorgente, non alle coordinate della finestra Tkinter. Questo significa che zoom e pan non cambiano il dato pixel associato a una posizione dell’immagine.
Coordinate calibrate
Dopo una calibrazione valida, la barra di stato aggiunge i valori fisici:
Pixel X,Y: 742.318, 518.206
Plate Voltage: 201.4 V
Plate Current: 30.2 mA
Mode: add
I valori vengono ricalcolati continuamente dalla trasformazione proiettiva e dalla scala dell’asse.
Precisione del click
Il programma conserva coordinate pixel floating-point derivate dalla trasformazione inversa Canvas → immagine. Non è quindi obbligato ad arrotondare il click a un pixel intero. Lo snap, quando attivo, sceglie invece un pixel intero dell’immagine in scala di grigi.
Consiglio operativo
Per grafici molto densi conviene prima usare Fit per orientarsi, poi zoomare fino a vedere bene lo spessore della linea e infine acquisire o correggere i punti. Un eccessivo ingrandimento non aggiunge informazione alla scansione: serve solo a posizionare meglio il cursore rispetto ai pixel esistenti.
4. Calibrazione a quattro punti con omografia
Scopo della calibrazione
La calibrazione converte una posizione dell’immagine, espressa in pixel, nei valori fisici degli assi del grafico. Curve Digitizer usa quattro punti del rettangolo dati e una trasformazione proiettiva, o homography.
Questa scelta è più robusta di una semplice proporzione X/Y quando una vecchia scansione presenta rotazione o una moderata deformazione prospettica.
I quattro punti
I punti devono essere acquisiti nell’area del grafico, non agli angoli fisici della pagina del datasheet:
- bottom-left: angolo inferiore sinistro dell’area dati;
- bottom-right: angolo inferiore destro;
- top-left: angolo superiore sinistro;
- top-right: angolo superiore destro.
Sul Canvas i punti vengono mostrati con marker ciano BL, BR, TL e TR.
Configurazione degli assi
Nella scheda Calibration, sezione Axes, ogni asse dispone di:
- Name;
- Unit;
- Min;
- Max;
- Scale:
linearoppurelog.
Dopo la modifica premere Apply axis settings. Se esistono già punti digitalizzati, le loro coordinate calibrate vengono ricalcolate usando la nuova configurazione, mentre i pixel memorizzati restano invariati.
Assi lineari
Per un asse lineare, la coordinata normalizzata t viene convertita con una relazione equivalente a:
value = minimum + t × (maximum - minimum)
Assi logaritmici
Per un asse logaritmico, l’interpolazione avviene nello spazio log10:
log10(value) =
log10(minimum)
+ t × [log10(maximum) - log10(minimum)]
Un asse logaritmico richiede limiti strettamente positivi. Per esempio, un asse 1 Hz…1 MHz è valido; un asse 0…1 MHz non lo è.
La trasformazione proiettiva
I quattro angoli selezionati vengono associati alle coordinate normalizzate:
bottom-left → (0, 0)
bottom-right → (1, 0)
top-left → (0, 1)
top-right → (1, 1)
L’omografia calcola quindi:
u = (h11·x + h12·y + h13) / (h31·x + h32·y + 1)
v = (h21·x + h22·y + h23) / (h31·x + h32·y + 1)
x,y sono le coordinate pixel e u,v sono le coordinate normalizzate. Successivamente u e v vengono convertite nei valori fisici X e Y con la scala lineare o logaritmica scelta.
Procedura consigliata
- Inserire nome, unità, minimo, massimo e scala degli assi.
- Premere Apply axis settings.
- Zoomare sull’angolo inferiore sinistro dell’area dati.
- Premere 1. Capture bottom-left e cliccare il punto.
- Ripetere per bottom-right, top-left e top-right.
- Controllare lo stato della calibrazione.
- Eseguire una verifica su uno o più punti noti della griglia.
Clear calibration
Clear calibration rimuove i quattro punti di calibrazione. I punti delle serie non vengono cancellati: le coordinate pixel restano memorizzate, mentre i valori calibrati diventano non disponibili fino a quando non viene creata una nuova calibrazione valida.
5. Verifica della calibrazione e valutazione della precisione
Perché verificare
Una calibrazione matematicamente valida non garantisce che il click sugli angoli sia preciso né che la scansione sia perfettamente proiettiva. Dopo aver acquisito i quattro angoli è quindi opportuno verificare alcuni punti della griglia il cui valore è noto.
Verify calibration
- Completare la calibrazione.
- Inserire, se desiderato, Expected X e Expected Y.
- Premere Verify calibration: click point.
- Cliccare un’intersezione nota della griglia.
Il programma mostra il pixel selezionato e i valori X/Y calcolati. Se sono stati inseriti i valori attesi, mostra anche:
ΔX = calculated X - expected X
ΔY = calculated Y - expected Y
Esempio
Su un grafico 0…500 V e 0…70 mA si può scegliere l’intersezione nota 200 V / 30 mA:
Expected X: 200
Expected Y: 30
Dopo il click il risultato può essere, ad esempio:
Pixel: 742.318, 518.206
Calculated X: 200.7 V
Calculated Y: 29.8 mA
ΔX: 0.7 V
ΔY: -0.2 mA
Corner RMS residual
Dopo il quarto punto il pannello mostra anche Corner RMS residual. Con quattro corrispondenze che definiscono esattamente un’omografia, questo residuo tende normalmente a essere molto vicino allo zero numerico. Non deve quindi essere interpretato come misura dell’accuratezza reale dell’intera scansione.
Matrix condition
Il valore Matrix condition è il numero di condizionamento del sistema lineare usato per determinare l’omografia. È un indicatore numerico: valori molto elevati possono segnalare una geometria sfavorevole o punti quasi degeneri. Non è però un errore espresso nelle unità del grafico.
La verifica più importante
Per stimare la qualità pratica della digitalizzazione, la prova più utile consiste nel verificare diversi punti noti distribuiti nell’area dati, preferibilmente:
- uno vicino al centro;
- uno nella metà sinistra e uno nella metà destra;
- uno nella parte bassa e uno nella parte alta del grafico.
Se l’errore cambia in modo sistematico tra le diverse zone, la pagina potrebbe avere una deformazione non descrivibile bene da un’unica omografia, ad esempio curvatura della carta o distorsione locale della scansione.
Come migliorare una calibrazione
- usare gli angoli dell’area dati e non le estremità delle scritte o delle tacche;
- zoomare prima del click;
- scegliere intersezioni di griglia ben definite;
- ripetere i quattro punti se uno è ambiguo;
- non usare lo snap per la calibrazione: nel programma lo snap è applicato ai punti delle curve, non ai quattro angoli.
Limite del modello
L’omografia corregge trasformazioni proiettive planari, come rotazione e moderata prospettiva. Non può correggere una deformazione arbitraria o locale della pagina. In presenza di scansioni molto ondulate, conviene preparare un’immagine migliore prima della digitalizzazione, mantenendo comunque l’originale archivistico separato.