I N I Z I O T O P I C |
darkbasic |
Posted - 19/01/2016 : 22:17:04 Ciao a tutti e in particolare ad Alberto :) Con mio rammarico è da un po' che non mi faccio vivo in questo forum e colgo la palla al balzo per chiedere lumi su un'idea che mi attanaglia. Vorrei creare un profilo fatto come si deve per la mia fotocamera, di conseguenza vorrei utilizzare almeno un migliaio di patches. Siccome comprare un "color checker" da un migliaio di patches è fuori discussione perché non me ne va di svenarmi (lo farei se potessi utilizzare il profilo in Lightroom, ma essendo pressoché limitato a DCRaw non vale la spesa) l'unica alternativa è utilizzare le patches utilizzate per la profilazione della stampante, che purtroppo hanno una riflettanza spettrale tutt'altro che piatta al variare della frequenza. Di conseguenza è giocoforza dover misurare i dati spettrali del mio illuminante per compensare la differenza di colore percepita al variare della luce. Neanche a farci apposta ho scoperto che mi ero perso un bellissimo articolo al riguardo: http://www.photoactivity.com/Pagine/Articoli/060BilanciamentoBianco/BilanciamentoBianco.asp Tratta più o meno quello che vorrei fare io, anche se è un po' vago nella parte che più mi interessa:
Citazione: contiene le coordinate RGB delle 24 tacche del target fotografato (bisogna in qualche modo estrapolarle dal TIFF) e le coordinate XYZ del target, che si ottengono dalla combinazione tramite opportuno software (per esempio Colorlab) della misura spettrale della riflettanza del target e della misura spettrale della luce incidente sulla scena
La parte più ostica mi sembra quella di estrapolare le coordinate RGB delle ~1000 patches del target, immagino che l'unico modo pratico per farlo sia scrivermi un software che lo faccia al posto mio.
Per quanto riguarda la seconda parte invece gradirei delle dritte su come combinare le misure spettrali con Colorlab o chi per lui.
Inoltre mi servono informazioni anche su come combinare insieme le coordinate RGB con quelle XYZ.
Il mio obiettivo per il momento è affinare la procedura con il Colorchecker 24 tacche della X-Rite, per prendere mano con la procedura "manuale" e con il formato in cui vanno salvati i dati. Se poi voglio avere qulche chance di replicare il tutto con un migliaio di patches dovrò trovare il modo di scrivermi un software che mi automatizzi i passaggi più lunghi ed error prone.
Se vi sembra una follia non esitate a dirmelo, è un'idea che mi frulla nella testa da troppo tempo e volevo quanto meno provare a realizzarla.
http://www.linuxsystems.it/ |
16 U L T I M E R I S P O S T E (Le più recenti in alto) |
AlbertoM |
Posted - 26/01/2016 : 11:56:24 Colprof prende la tacca più luminosa e la imposta come bianco della scena Eventualmente puoi usare il parametro -u per scalare la luminanza automaticamente o il par -U per scalarla manualmente
AlbertoM |
darkbasic |
Posted - 26/01/2016 : 11:38:45 Citazione: Postato da AlbertoM
Citazione: Postato da darkbasic Primo dubbio: dal momento che a colprof non viene data la misura spettrale della sorgente come fa a sapere l'illuminante con cui sono stati calcolate le coordinate XYZ?
Scusa, l'hai scritto tu.... spec2cie -i spettro_luce.sp mio_target.ti3 output_XYZ.ti3
Prima ti calcoli i valori XYZ poi immagino li vorrai usare con colprof....
Se a colprof invece dai i valori spettrali e non specifichi alcuna sorgente lui usa il D50
Sì ovviamente ho intenzione di usarle in colprof quelle coordinate XYZ, ma dal momento che nel mio target non c'è un riflettore Lambertiano come fa colprof a sapere qual è il mio bianco di riferimento?
Citazione: Postato da AlbertoM
Citazione: Postato da darkbasic "l'operazione rigorosa che si dovrebbe fare è l'integrale diretto con lo spettro del D50"
Qualcuno ne ha parlato con Graeme Gill? C'è un motivo particolare per cui la conversione diretta non è stata implementata in Argyll?
E' la colorimetria che funziona così, solo su valori tridimensionali, non su dati spettrali
Mea culpa, non ricordavo come lo standard ICC gestisse l'adattamento cromatico e di conseguenza neanche la presenza del tag chad con la matrice di adattamento cromatico.
Ho postato la domanda anche nella mailing list di Argyll per cercare di capire se qualcuno ha trovato altre strade per minimizzare l'errore.
http://www.linuxsystems.it/ |
AlbertoM |
Posted - 23/01/2016 : 19:57:04 Citazione: Postato da darkbasic Primo dubbio: dal momento che a colprof non viene data la misura spettrale della sorgente come fa a sapere l'illuminante con cui sono stati calcolate le coordinate XYZ?
Scusa, l'hai scritto tu.... spec2cie -i spettro_luce.sp mio_target.ti3 output_XYZ.ti3
Prima ti calcoli i valori XYZ poi immagino li vorrai usare con colprof....
Se a colprof invece dai i valori spettrali e non specifichi alcuna sorgente lui usa il D50
Citazione: Postato da darkbasic "l'operazione rigorosa che si dovrebbe fare è l'integrale diretto con lo spettro del D50"
Qualcuno ne ha parlato con Graeme Gill? C'è un motivo particolare per cui la conversione diretta non è stata implementata in Argyll?
E' la colorimetria che funziona così, solo su valori tridimensionali, non su dati spettrali
Citazione: Postato da darkbasic Ti faccio un esempio più concreto: devo riprodurre un quadro la cui stampa andrà vista in una galleria illuminata con illuminante standard D50. Purtroppo non ho la possibilità di portare il quadro in studio e devo effettuare lo scatto con illuminante C. Come fare per profilare al meglio la fotocamera?
Te l'ho detto, usa il D50, quindi non misurare la sorgente e usa colprof senza specificare sorgenti
Citazione: Postato da darkbasic ...il tuo consiglio è di non misurare affatto lo spettro della sorgente luminosa perché tanto poi dovrei calcolare le coordinate XYZ utilizzando l'illuminante standard D50. In questo modo non incorrerò in errori dovuti alla CAT MA a mio parere commetterò un errore ancor più grande, in quanto il mio scatto NON è stato fatto sotto il D50 e quei valori XYZ che ho calcolato NON sono quelli corrispondenti agli stimoli necessari affinché il mio occhio percepisca i colori del target correttamente sotto l'illuminante C.
Se parli di colori percepiti, allora devi usare le coordinate Lab, non XYZ
Le operazioni sono queste: calcoli i valori XYZ con la misura della sorgente --> calcoli i valori Lab usando la sorgente misurata, non il D50
Poi ricavi le coordinate XYX dai valori Lab con la formula inversa, usando questa volta il D50
I valori Lab rappresentano i colori percepiti quando il tuo sistema visivo è adattato cromaticamente ad un certo punto del bianco.
Questi sono i colori percepiti sotto al D50 e sotto l'illuminante A

E qui c'è il confronto con i valori XYZ ottenuti con Bradford:

Come puoi vedere, i valori XYZ ottenuti con la CAT di Bradford non c'entrano nulla con i valori XYZ ottenuti dai Lab calcolati sull'illuminante A
Io ho provato a fare profili di fotocamera usando i valori Lab reali, ma con scarsi risultati
Me lo sono spiegato pensando che se ti allontani molto dal D50 difficilmente sarai perfettamente adattato, quindi i valori dei Lab reali servono a poco
AlbertoM |
darkbasic |
Posted - 23/01/2016 : 19:19:02 Citazione: Postato da AlbertoM se tu calcoli i valori XYZ con la misura spettrale della sorgente, poi quando vuoi fare il profilo di fotocamera, Argyll o chi per lui, prima applica una CAT (una matrice di adattamento cromatico) per passare al D50.
Primo dubbio: dal momento che a colprof non viene data la misura spettrale della sorgente come fa a sapere l'illuminante con cui sono stati calcolate le coordinate XYZ?
Citazione: l'operazione rigorosa che si dovrebbe fare è l'integrale diretto con lo spettro del D50
Qualcuno ne ha parlato con Graeme Gill? C'è un motivo particolare per cui la conversione diretta non è stata implementata in Argyll?
Ti faccio un esempio più concreto: devo riprodurre un quadro la cui stampa andrà vista in una galleria illuminata con illuminante standard D50. Purtroppo non ho la possibilità di portare il quadro in studio e devo effettuare lo scatto con illuminante C.
Come fare per profilare al meglio la fotocamera? Quello che farei io è scattare una foto al target (illuminato sempre sotto lo stesso illuminante C) e misurare lo spettro della mia sorgente luminosa. Dopodiché svilupperei il raw della foto del target (disattivando il color management) per poterne ricavare le terne RGB di ogni tacca, infine misurerei il mio target per ricavarne i valori spettrali da cui ricaverei le coordinate XYZ utilizzando la misura spettrale della sorgente luminosa (il mio illuminante C).
A questo punto mi fermo per fare qualche considerazione alla luce di quanto detto finora.
- Se effettivamente utilizzassi la misura spettrale della mia sorgente luminosa per computare le coordinate XYZ poi incorrerei in un errore nell'ordine del DeltaE 1.6 quando colprof effettuerà la CAT per creare il mio PCS D50.
- Di conseguenza il tuo consiglio è di non misurare affatto lo spettro della sorgente luminosa perché tanto poi dovrei calcolare le coordinate XYZ utilizzando l'illuminante standard D50. In questo modo non incorrerò in errori dovuti alla CAT MA a mio parere commetterò un errore ancor più grande, in quanto il mio scatto NON è stato fatto sotto il D50 e quei valori XYZ che ho calcolato NON sono quelli corrispondenti agli stimoli necessari affinché il mio occhio percepisca i colori del target correttamente sotto l'illuminante C.
Mi sfugge qualcosa?
http://www.linuxsystems.it/ |
AlbertoM |
Posted - 23/01/2016 : 17:50:33 Citazione: Postato da darkbasic Fammi capire: se io volessi guardare la stampa sotto al D50 dovrei calcolare le coordinate XYZ del target utilizzando il D50 e non la misura spettrale della luce incidente sulla scena (per esempio illuminante A)?
Esattamente. Anch'io la pensavo diversamente tempo fa, e credo di aver anche dato consigli sbagliati sul forum, ma le cose stanno in questi termini:
se tu calcoli i valori XYZ con la misura spettrale della sorgente, poi quando vuoi fare il profilo di fotocamera, Argyll o chi per lui, prima applica una CAT (una matrice di adattamento cromatico) per passare al D50.
Che senso hanno i nuovi valori XYZ così ottenuti? cioè dopo l'applicazione della CAT? Questi nuovi valori XYZ rappresentano i colori che l'osservatore vedrebbe se la sorgente fosse il D50, non l'illuminante A di partenza del tuo esempio.
Quindi il profilo di fotocamera ottenuto, cercherebbe di avvicinarsi il più possibile a questi valori.
Si è sempre detto che applicare una CAT a valori XYZ è un operazione approssimativa, che genera risultati approsimativamente corretti, l'operazione rigorosa che si dovrebbe fare è l'integrale diretto con lo spettro del D50 In quest'immagine di Bruce Lindbloom si vede l'errore delle CAT più comuni nel portare un colore dall'illuminante A all'illuminante C (sample A sarebbe il colore visto sotto l'illuminante A, sample C quello visto sotto l'illuminante C)

Se consideriamo il solito target a 24 tacche, possiamo vedere qui sotto la statistica dell'errore usando la CAT di Bradford (quella più comune, usata anche da Argyll) per passare dall'illuminante A del tuo esempio al D50:

Non è un errore tanto piccolo, è comparabile con quello della validazione del profilo
Quindi, se il tuo scopo è quello di visualizzare stampe sotto al D50, è meglio evitare l'errore dovuto alla CAT, cioè è meglio che il profilo di fotocamera si avvicini ai valori di sinistra, quelli ottenuti con formula diretta, non ai valori sbagliati a destra.
Unico caso in cui ha senso usare i dati spettrali della sorgente nella creazione del profilo di fotocamera è quello in cui si usano anche nella creazione del profilo di stampa. In questo caso, l'errore della CAT si annulla, perchè è presente in ugual misura sia nel profilo di fotocamera che in quello di stampa. Unica accortezza è quella di usare la stessa CAT nella creazione dei 2 profili, quindi se usi Argyll puoi stare tranquillo, in quanto viene usata sempre quella di Bradford
AlbertoM |
darkbasic |
Posted - 21/01/2016 : 15:52:26 Citazione: Occhio che se usi lo spettro della luce misurata sulla scena, poi dovrai stampare in colorimetrico assoluto usando come sorgente per il profilo di stampa sempre la stessa che hai misurato sulle scena.
Se invece vuoi riportare tutto al D50, ovvero se vuoi guardare la stampa sotto al D50, è meglio che calcoli gli XYZ della scena usando il D50 e non la sorgente reale
Fammi capire: se io volessi guardare la stampa sotto al D50 dovrei calcolare le coordinate XYZ del target utilizzando il D50 e non la misura spettrale della luce incidente sulla scena (per esempio illuminante A)? Se gli XYZ che sto calcolando sono quelli del target che ho fotografato mi sarei aspettato che l'illuminante debba essere quella della scena che è stata fotografata, altrimenti perché scrivere "le coordinate XYZ del target si ottengono dalla combinazione della misura spettrale della riflettanza del target e della misura spettrale della luce incidente sulla scena"? Che il PCS del mio profilo debba essere calcolato con illuminante D50 in quanto osservatore standard sono d'accordo, ma poi ci penserà colprof a creare un profilo il cui PCS sia stato calcolato con osservatore standard, indipendentemente dall'illuminante con cui ho calcolato le coordinate XYZ del target. O mi sto perdendo qualcosa per strada?
http://www.linuxsystems.it/ |
AlbertoM |
Posted - 20/01/2016 : 23:28:46 Puoi ricavarle come meglio credi
Occhio che se usi lo spettro della luce misurata sulla scena, poi dovrai stampare in colorimetrico assoluto usando come sorgente per il profilo di stampa sempre la stessa che hai misurato sulle scena. Del tipo faccio il profilo fotocamera con una certa sorgente e poi guardo la stampa sotto la stessa sorgente: la stampa a questo punto sarà la fotocopia del quadro.
Se invece vuoi riportare tutto al D50, ovvero se vuoi guardare la stampa sotto al D50, è meglio che calcoli gli XYZ della scena usando il D50 e non la sorgente reale
AlbertoM |
darkbasic |
Posted - 20/01/2016 : 19:54:39 Citazione: I valori XYZ li ricavi con Measure Tool (o ColorLab) dalla misura spettrale del target e dalla misura spettrale della luce
Non potrei utilizzare semplicemente spec2cie -i spettro_luce.sp mio_target.ti3 output_XYZ.ti3 ?
http://www.linuxsystems.it/ |
darkbasic |
Posted - 20/01/2016 : 15:28:51 Citazione: Le prove che ho fatto erano spiegate nel topic che ho linkato
Scusami ma ancora non ho avuto modo di leggerlo purtroppo, stasera gli darò un'occhiata.
Grazie
http://www.linuxsystems.it/ |
AlbertoM |
Posted - 20/01/2016 : 15:03:47 Beh, se un dispositivo lavora per sintesi addittiva, come fanno i monitor e i sensori, è molto improbabile che la soluzione trovata con 24 patches sbagli in modo grossolano in altri punti
Sì, l'errore può essere maggiore, ma non enorme
Le prove che ho fatto erano spiegate nel topic che ho linkato
Alla fine si tratta di compilare un file di testo (io mi aiuto con excel) in cui fai corrispondere i valori RGB delle tacche fotografate con i valori XYZ del target
Non credo di aver sbagliato qualcosa, penso che sia l'algoritmo di Argyll a fare un po' di confusione: in definitiva gli dai un milione di patches tutte molto ravvicinate, con pochi punti saturi, quindi forse qualcosa va storto nella convergenza dell'algoritmo: quando fai un profilo per una stampante, le patches sono distribuite in tutto il gamut della stampante, per la fotocamere il gamut è tutto lo spazio del tristimolo, per cui gli fornisci delle patches che stanno solo in una zona, questo potrebbe essere un problema per l'algoritmo di argyll
Ma questa è solo una mia supposizione
Se vuoi approfondire, il mio amico Marcello Melis di Profilocolore ha sviluppato un software che supera i limiti dei profili ICC, anche quelli a tabella, e tramite un algoritmo basato su intelligenza artificiale riesce a trovare la corrispondenza ottimale tra i valori RGB della fotocamera e i valori XYZ della scena, trasformando la fotocamera in uno strumento per misure fotometriche e colorimetriche
http://www.profilocolore.com/wp-content/uploads/2013/07/Profilocolore-Colorimetro-con-reflex-IX-Conferenza-del-Colore-2013_web.pdf
AlbertoM |
darkbasic |
Posted - 20/01/2016 : 14:32:59 I risultati che ho ottenuto sono in linea con i tuoi risultati con il tool della X-Rite.
I problemi sono principalmente due: 1) Nel tuo profilo hai minimizzato l'errore su quelle 24 patches, ma se tentassi la verifica del profilo con delle patches diverse probabilmente troveresti errori più sostanziosi. 2) Per applicazioni specifiche come la riproduzione di opere d'arte si potrebbe ambire a qualcosa di più.
Inoltre trovo incredibile che ci si scervelli per trovare il Santo Graal della profilazione per quanto riguarda monitor e stampanti e poi ci si accontenti di profili così grossolani per le fotocamere, specialmente per applicazioni così specifiche dove il color management è cruciale.
Probabilmente sono arrivato al punto in cui tutto si è ormai ridotto a un mero esercizio di stile, e magari se avessi trovato anche solo un singolo articolo in cui qualcuno prova a portare ai limiti estremi la profilazione della fotocamera avrei desistito.
Hai scritto che in passato hai già fatto prove di questo tipo ottenendo risultati deludenti, posso chiederti perché? Come hai fatto a gestire un numero così esorbitante di patches senza un software che estrapoli automaticamente i valori e che ti permetta di verificare i valori ottenuti due o tre volte? Ci metterei la mano sul fuoco che se si fa tutto manualmente l'errore umano sale alle stelle con così tante patches, ed è impensabile ottenere qualcosa se non si ripete il processo 2-3 volte alla ricerca di valori che si discostano troppo tra di loro.
http://www.linuxsystems.it/ |
AlbertoM |
Posted - 20/01/2016 : 14:15:07 Se l'obiettivo è la sola stampa allora un profilo creato con un target stampato nelle stesse condizioni in linea teorica è il massimo
Comunque ti posso dire che in passato ho fatto qualche prova di quel tipo, come suggerivo, ma ho ottenuto sempre risultati deludenti
Per questo mi sono orientato ai profili a matrice
Sull'ultima fotocamera che ho profilato (A7r) ho ottenuto questi risultati:

A sinistra con Argyll e a destra con il tool di X-Rite
Se l'errore fosse nullo, la differenza visibile sarebbe molto piccola
Secondo me se hai ottenuto risultati non soddisfacenti con profili a matrice, il problema non è l'accuratezza del profilo, ma qualcos'altro
AlbertoM |
darkbasic |
Posted - 20/01/2016 : 13:55:19 Grazie Alberto, darò un'occhiata al thread che hai linkato.
Ovviamente l'intento è quello di fare un profilo a tabella, altrimenti il 24 tacche sarebbe forse sufficiente o comunque basterebbe acquistare una testchart da ~100 tacche per essere apposto definitivamente.
Citazione: Inoltre il gamut del target stampato con la tua stampante, magari su carta matte per non aver problemi di riflessi, sta dentro al gamut del 24 tacche, così l'eventuale miglior caratterizzazione è solo dentro a un gamut limitato, non sta sui colori più saturi
Perfettamente d'accordo su questo, ma se l'obiettivo è *stampare* le foto che benefici avrei ad utilizzare una testchart con un gamut maggiore di quello della stampante?
http://www.linuxsystems.it/ |
AlbertoM |
Posted - 20/01/2016 : 12:22:41 Ciao Darkbasic, ti consiglio la lettura di questo topic
Posso aggiungere che, se il profilo di fotocamera è a matrice, non servono tantissime tacche: tra un profilo fatto con la 24 tacche x-rite e la 140 tacche x-rite c'è differenza, ma molto piccola Inoltre il gamut del target stampato con la tua stampante, magari su carta matte per non aver problemi di riflessi, sta dentro al gamut del 24 tacche, così l'eventuale miglior caratterizzazione è solo dentro a un gamut limitato, non sta sui colori più saturi
Invece se il profilo è a tabella, allora molte tacche sono d'obbligo
Io però mi sono convinto che conviene "accontentarsi" di un profilo a matrice (per la fotocamera), perchè più passa il tempo e meglio sono fatti i filtrini RGB dei sensori, e quindi minore è l'errore del profilo: se i profili fossero costruiti nel modo ideale, un profilo a matrice darebbe un errore nullo e non servirebbe un profilo a tabella
AlbertoM |
darkbasic |
Posted - 19/01/2016 : 22:44:34 Ovviamente sarebbe un profilo utilizzabile solo con quell'illuminante, sempre che tu non sappia linkarmi della documentazione che mi spieghi come diamine creare un profilo a doppio illuminante leggibile da camera raw (in fin dei conti se lo fa il tool della X-Rite...).
Perché? Riproduzione di opere d'arte per esempio (non sono mai stato soddisfatto al 100% dei pur ottimi risultati ottenuti) o semplice fotografia da studio.
La vera domanda sarebbe: perché no? In gran parte è semplice curiosità di capire qual è il limite massimo di fedeltà ottenibile con una semplice reflex con sensore bayer.
http://www.linuxsystems.it/ |
andre_ |
Posted - 19/01/2016 : 22:36:20 La domanda che mi viene in mente é: Perché?
Se non ho capito male quello che otterresti é un profilo ICC, valido nelle condizioni di illuminazione che hai usato per crearlo. Non avresti un profilo "flessibile" come quello dcp a doppio illuminante che usa Lightroom. Oppure si, potresti averlo come dcp da mille patches... ma non potresti usarlo all'interno di nessun software.
Quindi a che pro lo vorresti creare? Per usarlo in una ed una sola condizione? Ma per quello esistono i target specifici (IT8?) ed i tools per creare un ICC classico.
Oppure mi perdo qualcosa io.  a_
www.justnuances.com |
|
|