Domanda

Ho un immagine in scala di grigi da una fotografia. Ho deciso che alcune parti dell'immagine vengono underilluminated, e che un pixel con luminanza Y = 0,8 effettivamente deve essere regolata al 90% grigio, cioè, quel pixel devono essere riportate luminanza 0.9. La mia domanda è come faccio a scalare le altre pixel nelle vicinanze? Sono abbastanza sicuro moltiplicando tutte le luminanze dal 9/8 è sbagliato, perché mi ricordo vagamente sentito che, al fine di Cerca uniforme, la scala deve essere lineare. Ma sto avendo problemi a trovare un'equazione che mi avrebbe permesso di fare progressi. (Naturalmente sto scrivendo in realtà un programma per rendere questa regolazione ad un gran numero di fotografie.)

La fonte dei miei pixel è la pbmplus formato PGM, di cui la pagina man dice:

  

Ogni valore di grigio è un numero proporzionale all'intensità della   pixel, regolata dalla CIE Rec. 709 funzione di trasferimento gamma. (Quello   funzione di trasferimento specifica un numero gamma di 2.2 e ha un lineare   sezione per piccole intensità). Un valore di zero è pertanto nero.   Un valore di MAXVAL rappresenta bianco CIE D65 e il valore più intensa   a immagine e qualsiasi altra immagine a cui l'immagine potrebbe essere paragonato.

Se ho capito questo meglio avrei probabilmente avere una migliore idea di come procedere.

Ho trovato una domanda relativa rendere un'immagine uniforme luminosità .


Grazie Shmoopty per avermi portato in pista. Ho accettato la tua risposta ha poi aggiunto alcune informazioni ad esso.

È stato utile?

Soluzione

Probabilmente si desidera Correzione Gamma , che manterrà vera bianco e nero true corretto , mentre piegando i valori intermedi.

La formula per la regolazione gamma, quando l'ingresso è nell'intervallo (0.0, 1.0) è:

output = pow( input, gamma )

... dove gamma schiarire quando meno di 1,0 e scurire quando sopra 1.0.

Per spingere 0,8 fino a 0,9, si calcola log(0.9)/log(0.8) di ottenere una gamma di 0,4722 .

Si noti che questa è una delle molte formule - ed è il più semplice matematicamente che preserverà bianco e nero come colori unici (che qualcuno potrebbe considerare importante) - tuttavia non esiste una sola formula corretta per dare che cosa c'è di "vero".


Addendum: ho verificato che la correzione gamma può essere applicato ai valori che sono già gamma-codificati. E 'difficile annotare la matematica a mark-down, ma la legge fondamentale algebrico è

(y**a)**b == y**(a*b) == y**(b*a) == (y**b)**a

Se si applica questa legge, è possibile determinare che le correzioni gamma pendolari, quindi è OK, per applicare la correzione della gamma a valori già corretti. NR

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top