Dall’immagine raster a un Dataset verificabile: l’esempio della funzione y = √x

Nei grafici scientifici non tutti gli assi sono lineari. Quando una grandezza copre diversi ordini di grandezza, spesso si preferisce una scala logaritmica: distanze uguali sulla carta rappresentano rapporti uguali tra i valori, non differenze uguali. Questo cambia il modo in cui un’immagine deve essere calibrata, e rende pericoloso trasformare direttamente i pixel con una semplice proporzione lineare.

In questa terza guida utilizziamo GX-TXT Curve Digitalizer per recuperare i dati da un grafico sintetico a doppia scala logaritmica. La funzione è nota in anticipo, y = √x: possiamo così distinguere ciò che sappiamo matematicamente da ciò che il digitalizzatore misura davvero sul raster. Seguiremo l’intero percorso: importazione, calibrazione, verifica, punti guida, tracciamento assistito, pubblicazione del Dataset e controllo nella Preview.

1. Il nostro campione: una funzione nota su carta log-log

L’immagine di partenza, log-reference.png, è un raster RGB di 1000 × 700 pixel. La linea blu rappresenta la funzione y = √x; i quattro marcatori rossi delimitano il rettangolo utile per la calibrazione. I valori di riferimento degli assi sono:

AsseMinimoMassimoScalaUnità
X11000Logaritmica1 (adimensionale)
Y0,01100Logaritmica1 (adimensionale)

In una rappresentazione log-log la funzione appare come una retta, perché log₁₀(y) = 0,5 · log₁₀(x). La pendenza attesa nel piano logaritmico è dunque 0,5. Questa è una proprietà della funzione e della scelta degli assi, non un risultato della digitalizzazione.

Per avere qualche riferimento concreto, sulla curva teorica troviamo (1; 1), (10; 3,1623), (100; 10) e (1000; 31,6228). Non useremo questi numeri per costruire artificialmente i dati: li conserveremo come termini indipendenti di confronto.

2. Importare la sorgente come Dataset

Creiamo una nuova Session di GX-TXT, separata dalle prove delle guide precedenti. Nella sezione Acquisition selezioniamo Image importer, scegliamo log-reference.png, assegniamo l’identificativo image.tutorial03.log_reference e importiamo il file.

L’importazione crea un Dataset canonico di tipo image.raster. Il Curve Digitalizer può quindi lavorare su una sorgente associata alla Session, senza ricorrere a percorsi privati o a immagini sostituite manualmente nel progetto.

Apriamo Viewers → Digitalizer, creiamo una configurazione nuova chiamata T03 - sqrt(x) log-log, selezioniamo il Dataset appena importato in Image Dataset e confermiamo la finestra di anteprima con Use this image. Nel pannello Source troviamo l’identità della sorgente, le dimensioni del raster e la sua impronta SHA-256.

Curve Digitalizer con il grafico log-log di y = √x e il pannello Source che mostra identità, dimensioni e SHA-256 del raster.
Figura 1 — Il grafico sintetico associato alla configurazione del Curve Digitalizer. Il pannello Source consente di controllare l’identità del Dataset e della sorgente raster.

3. Impostare entrambi gli assi in scala logaritmica

Nella scheda Calibration impostiamo X e Y prima di scegliere i punti di riferimento. Per l’asse X inseriamo etichetta x, unità 1, ruolo semantico independent, minimo 1, massimo 1000 e Scale = log. Per l’asse Y inseriamo etichetta y=sqrt(x), unità 1, ruolo measured, minimo 0.01, massimo 100 e ancora Scale = log. Lasciamo la direzione Y su Upward (Cartesian), quindi premiamo Apply axis settings.

Scheda Calibration con asse X da 1 a 1000 e asse Y da 0,01 a 100, entrambi impostati su scala logaritmica.
Figura 2 — I limiti e le scale scientifiche degli assi X e Y. Il parametro «log» appartiene alla calibrazione dei dati, non soltanto all’aspetto del grafico visualizzato.

La scala logaritmica richiede estremi strettamente positivi. Durante la prova abbiamo anche verificato il comportamento dell’interfaccia inserendo provvisoriamente Y minimum = 0: il Digitalizer ha rifiutato l’impostazione con l’avviso «Logarithmic axes require positive limits». Abbiamo poi ripristinato il minimo corretto, 0.01, senza alterare la calibrazione valida.

4. Calibrare i quattro angoli del raster

L’immagine usa una calibrazione manuale a quattro punti. Nella stessa scheda Calibration selezioniamo, nell’ordine, i comandi Set BL, Set BR, Set TL, Set TR e facciamo clic sui marcatori rossi corrispondenti: bottom left, bottom right, top left e top right.

I punti effettivamente acquisiti nella prova GUI, espressi nelle coordinate pixel dell’immagine originale, sono:

AngoloPixel XPixel Y
BL119,424599,640
BR919,424599,640
TL119,42480,216
TR919,42480,216

I valori non coincidono esattamente con i centri nominali (120; 600), (920; 600), (120; 80), (920; 80): sono coordinate realmente ottenute attraverso i clic sul canvas, con una risoluzione grafica finita. Il sistema ha riconosciuto la calibrazione e abbiamo portato la misura Measurement 1 dallo stato draft allo stato accepted.

Grafico y = √x con marcatori BL, BR, TL e TR e stato accepted della misura di calibrazione nel Curve Digitalizer.
Figura 3 — I quattro marcatori di calibrazione. La misura attiva viene accettata soltanto dopo la verifica della geometria.

Il Digitalizer ha riportato un numero di condizionamento dell’omografia di circa 3,4 × 10³ e un RMS di riproiezione sui quattro angoli di circa 1,57 × 10⁻¹⁶. Questo RMS esprime la coerenza della trasformazione con i punti usati per calcolarla: non è l’incertezza della lettura della curva e non dimostra, da solo, l’accuratezza della digitalizzazione.

5. Verificare alcuni punti noti

Usiamo Verify calibration… per selezionare punti identificabili sulla traccia blu, inserendo nelle caselle Expected le coordinate fisiche previste dalla funzione. L’interfaccia restituisce i valori calcolati dalla calibrazione e i relativi scarti, senza modificare il Dataset.

X teoricaY teoricaX letta dalla GUIY letta dalla GUI
111,00001,0128
103,162310,08323,1927
10010100,415010,0640
100031,62281000,000031,7238
Pannello Calibration verification con punto selezionato sulla curva, coordinate calcolate e scarti rispetto ai valori attesi.
Figura 4 — La verifica interattiva mostra coordinate calcolate e scarti rispetto a un valore scientifico atteso. I valori riportati nella tabella derivano dalla prova GUI, non da una simulazione dei clic.

Gli scarti sono piccoli rispetto all’escursione complessiva, ma non sono nulli. La scelta del pixel, lo spessore della linea, la posizione dei marcatori e il ricampionamento dell’immagine contribuiscono a limitare la precisione pratica. La verifica interattiva qui descritta non va confusa con una valutazione metrologica completa dell’incertezza.

6. Tracciare la curva con cinque punti guida

Passiamo alla scheda Curves. Non stiamo costruendo una famiglia di curve: lasciamo disattivata la casella This configuration is a numerical curve family e creiamo una sola curva mediante New curve, assegnandole il nome sqrt(x).

Per la prova di tracciamento assistito attiviamo Add guide e indichiamo cinque punti, distribuiti lungo la linea blu dal primo all’ultimo estremo. I punti guida descrivono il percorso desiderato: non sono ancora i cento punti che pubblicheremo.

Grafico log-log con cinque punti guida G1–G5 distribuiti sulla linea blu della funzione y = √x.
Figura 5 — Cinque punti guida lungo la curva sintetica. Un numero limitato di riferimenti può orientare il tracciamento assistito di una traccia regolare.

Impostiamo Corridor = 5 px, Step = 8 px, Smooth curve prior = Off e Trace image = original. Nella sezione di accettazione specifichiamo Output points (Accept) = 100. Premendo Propose, il Curve Digitalizer elabora una proposta di 105 punti lungo 4 segmenti; in questa prova non segnala segmenti ambigui nella proposta. Esaminiamo visivamente la sovrapposizione prima di proseguire.

Proposta assistita sulla traccia blu con cinque guide, corridoio di 5 pixel e passo di 8 pixel.
Figura 6 — La proposta assistita segue la traccia blu originale. I punti guida sono distinti dai punti proposti; la proposta non è ancora una misura pubblicata.

Con Accept confermiamo i quattro segmenti. L’interfaccia registra 100 assisted points added. Il conteggio finale della curva diventa 100 punti. La differenza fra 105 punti proposti e 100 accettati dipende dalla densità di uscita scelta, non dalla perdita accidentale di cinque dati.

Curve Digitalizer con cento punti rossi accettati e sovrapposti alla traccia blu sul grafico log-log.
Figura 7 — I cento punti accettati, sovrapposti al grafico sorgente. La curva appartiene alla configurazione e può essere riesaminata prima della pubblicazione.

7. Pubblicare il Dataset canonico

Nella scheda Publish impostiamo come nome base digitized.tutorial03.sqrt_loglog, scegliamo il layout separate e selezioniamo l’unica misura di calibrazione accettata, Measurement 1. Premiamo Publish selected calibrations.

Il risultato è un Dataset canonico con ID:

digitized.tutorial03.sqrt_loglog.measurement_1.curves

Scheda Publish del Curve Digitalizer con conferma Published 1 Dataset(s) e identificativo del Dataset della curva.
Figura 8 — La conferma di pubblicazione del Dataset ottenuto dalla singola curva e dalla singola calibrazione accettata.

Il Dataset pubblicato contiene 100 righe e otto colonne: x, y, curve_id, curve_label, point_index, point_id, pixel_x, pixel_y. Le prime due riportano le coordinate scientifiche; le ultime due conservano la posizione nel raster originale. Identificatori e indici permettono di ricondurre le righe alla curva e ai punti da cui hanno avuto origine. Non abbiamo creato più copie dei medesimi punti attraverso calibrazioni alternative.

8. Controllare i risultati nella Dataset Preview

Nel pannello Dataset di GX-TXT attiviamo il nuovo Dataset e apriamo Preview. La visualizzazione mette a disposizione le schede Source image, Plot, Table e Quality.

La scheda Source image mostra il grafico originale con i punti digitalizzati sovrapposti: è il controllo visivo più immediato per capire se il tracciamento è rimasto sulla linea blu.

Scheda Source image con il grafico log-log originale di y = √x e i punti digitalizzati sovrapposti alla linea blu.
Figura 9 — Source image: identità della sorgente verificata e punti pubblicati riportati sulle coordinate originali del raster.

La scheda Plot rappresenta invece i valori numerici X e Y contenuti nel Dataset. Nella prova la vista iniziale usa assi di presentazione lineari: per questo la funzione appare con la consueta forma di radice quadrata, non come la retta osservata nel grafico sorgente log-log.

Scheda Plot della Dataset Preview con la curva y = √x rappresentata sugli assi lineari X e Y.
Figura 10 — Il Plot numerico della Preview, con scale di visualizzazione lineari. La scelta del tipo di grafico non altera la calibrazione logaritmica con cui sono state ricavate le coordinate scientifiche.

Nella scheda Table ritroviamo tutte le 100 righe del Dataset, comprese le coordinate scientifiche e i riferimenti ai pixel originali.

Scheda Table con 100 righe di coordinate X e Y, identificativi curva e punto, indici e coordinate raster.
Figura 11 — Table: dati canonici e identificatori dei punti pubblicati. Le coordinate pixel restano disponibili accanto a X e Y.

Infine, Quality espone il rapporto diagnostico della pubblicazione. Nel nostro caso segnala una curva, 100 punti raster, 99 segmenti e due osservazioni informative di debole contrasto locale. Non sono automaticamente due punti sbagliati e non costituiscono una stima dell’errore fisico. Il rapporto distingue infatti le osservazioni sull’immagine dall’accuratezza e dall’incertezza metrologiche, che non risultano valutate o dichiarate.

Scheda Quality v2 con una curva, 100 punti raster, 99 segmenti e due segnalazioni di contrasto debole.
Figura 12 — Quality: numero di punti, segmenti e osservazioni sull’immagine. Il controllo della sorgente è distinto da accuratezza e incertezza fisica.

9. Quanto si avvicinano i punti alla funzione teorica?

Poiché conosciamo il modello, possiamo eseguire un controllo numerico indipendente dalla schermata sul CSV pubblicato. Per ciascuna riga prendiamo la X digitalizzata, calcoliamo la radice quadrata teorica di quella stessa X e confrontiamola con la Y digitalizzata. In simboli, lo scarto relativo percentuale è:

100 · [Y(digitalizzata) − √X(digitalizzata)] / √X(digitalizzata).

Sui 100 punti effettivamente pubblicati abbiamo ottenuto:

IndicatoreRisultato
Punti confrontati100
Errore relativo RMS rispetto a y = √x2,395%
Massimo errore relativo assoluto5,489%
Pendenza della regressione log₁₀(Y) su log₁₀(X)0,503632
Intercetta della stessa regressione−0,002120

La pendenza sperimentale 0,5036 è vicina alla pendenza teorica 0,5. Questo conferma che i dati seguono complessivamente la relazione attesa. Non significa che ciascun punto sia corretto: gli scarti locali, soprattutto per una traccia di pochi pixel di spessore, vanno esaminati separatamente.

Il valore RMS del 2,395% descrive quanto il Dataset differisce dalla funzione di riferimento in questo esercizio sintetico. Non è un’incertezza standard assegnabile automaticamente a nuove misure, né un’indicazione della prestazione universale del digitalizzatore su qualunque immagine.

10. Salvare, chiudere e riaprire

Concludiamo salvando la configurazione nella Session. Chiudiamo il Curve Digitalizer e riapriamolo attraverso Viewers → Digitalizer, senza ricreare la sorgente né ripetere l’importazione. La stessa configurazione T03 - sqrt(x) log-log viene recuperata insieme all’immagine, alla calibrazione e ai 100 punti accettati.

Curve Digitalizer riaperto con lo stesso grafico log-log e i cento punti rossi della curva sqrt(x) ancora presenti.
Figura 13 — Dopo la riapertura del Viewer, la curva conserva i 100 punti precedentemente accettati. Questa verifica distingue il lavoro effettivamente salvato da una semplice visualizzazione temporanea.

Conclusione

Questa prova mostra l’intero percorso da un’immagine scientifica a un Dataset numerico tracciabile. Gli aspetti fondamentali non sono soltanto la velocità del tracciamento, ma soprattutto la corretta interpretazione delle scale, la verifica di punti noti, la conservazione delle coordinate raster e la distinzione tra dati pubblicati, diagnostica dell’immagine e incertezza fisica.

La funzione y = √x è un caso didattico particolarmente utile: sul raster log-log è una retta, mentre nella rappresentazione numerica lineare torna a essere una radice quadrata. Il contenuto scientifico dei dati resta lo stesso; cambia il modo in cui scegliamo di visualizzarli.

Materiale per riprodurre l’esperimento

Per ripetere l’esercizio occorre l’immagine originale log-reference.png. Il file complementare log-reference.json descrive geometria e riferimenti matematici ideali, utili per il confronto ma non sostitutivi della calibrazione eseguita nella GUI. I due file sono raccolti nel pacchetto didattico

#calibrazione log-log #Curve Digitalizer #Dataset scientifici #digitalizzazione curve #elaborazione dati #GiuxLab #grafici logaritmici #GX-TXT #image digitization #tracciamento assistito

Altre tappe del progetto

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *