domenica 24 aprile 2011

un programmino per il test dei film

Ho scritto un programmino per facilitare il test dei film in bianco e nero.
Il programma costruisce, a partire dai dati sperimentali, un'approssimazione della curva caratteristica mediante una funzione spline.

Ricava inoltre i valori dell'ISO effettivo e del gradiente medio di contrasto. Tali valori sono determinati in accordo alla procedura descritta in Way Beyond Monochrome [1]:
  • L'ISO effettivo è l'ISO a cui si dovrebbe esporre il film affinché un'area in Zona I.5 (ovvero a metà tra le zone I e II) produca sul negativo un'area con una densità trasmissiva pari a 0.17.
  • Il gradiente medio di contrasto è la pendenza della retta che unisce i punti della curva caratteristica corrispondenti alle zone I.5 e VIII.5 (opportunamente riposizionate sull'asse delle ascisse per tener conto dell'ISO effettivo).
Il programma genera un file png contenente il grafico della curva caratteristica. Ho riportato di seguito due esempi, che si riferiscono ad un test da me precedentemente effettuato:


Le due linee verticali di colore verde mostrano le nuove posizioni dei valori di esposizione corrispondenti alle zone I.5 e VIII.5, quando il film viene esposto all'ISO effettivo determinato nel presente test.

* * *

Note tecniche
Il codice sorgente del programma può essere scaricato da Google Code.
Il programma è scritto in Python e funziona su Ubuntu con la versione 2.6 di Python.
C'è ancora qualche problema su windows XP (import pylab fa crashare l'interprete).

Come si usa
In primo luogo, occorre ricavare sperimentalmente un certo numero di punti della curva caratteristica (come descritto in un mio precedente post).

Occorre poi creare un file di configurazione (un esempio può essere scaricato assieme al codice sorgente) contenente:
  • alcune informazioni sul film utilizzato e sullo sviluppo (verranno riportate nel grafico);
  • la sensibilità del film (ISO) impostata per il test;
  • il grado dei polinomi di interpolazione (deve essere < del numero di punti determinati sperimentalmente);
  • un parametro (smoothness) che determina quanto la curva deve essere liscia;
  • N coppie di valori (zona, densità) ordinate in modo crescente in base alla zona.
Il programma si lancia con il comando

# python fcurve config_file

dove config_file è il nome del file di configurazione.
Viene generato un file, avente lo stesso nome del file di input ed estensione png, contenente il grafico della curva caratteristica.

Riferimenti
  1. Il testo "Way Beyond Monochrome", di Ralph Lambrecht e Chris Woodhouse (Focal Press) è stato il principale riferimento teorico.
  2. Questo esempio di utilizzo delle interpolazioni spline è stato molto utile e da esso sono partito per scrivere il programma.

Nessun commento:

Posta un commento