Domanda:
Come posso ottenere un bilanciamento del bianco uniforme su un batch di immagini JPEG?
Ruggero Turra
2015-05-14 17:00:08 UTC
view on stackexchange narkive permalink

Ho scattato molte foto dello stesso soggetto in JPG. Dato che ho scattato per molte ore con condizioni di luce diverse, il bilanciamento del bianco è abbastanza diverso per tutti gli scatti.

Vorrei regolare automaticamente il bilanciamento del bianco per avere un bilanciamento del bianco uniforme in tutti gli scatti (mentre Voglio che la luminosità sia quella dello scatto).

Ho provato alcuni strumenti:

  • Script basati su ImageMagick qui, ma sono piuttosto primitivi: si calcola semplicemente la trasformazione in modo che il pixel selezionato sia (0,0,0), quindi senza preservare la luminosità, gli altri sono troppo lenti

  • darktable: con questo posso creare una serie di trasformazioni su un'immagine (diciamo, la prima) e poi applicarla a tutte le altre. Il problema è che per il bilanciamento del bianco calcola la trasformazione per la prima immagine e poi applica esattamente la stessa trasformazione alle altre, senza ricalcolare la trasformazione per ogni immagine.

Suggerimenti?

`Ufraw-batch` con` --wb = auto` è un'opzione?
funziona con jpg? Ottengo: `ufraw-batch: Impossibile decodificare il file w.jpg`
No scusa. ufraw è solo per i file raw.
possibile duplicato di [Come faccio a correggere il bilanciamento del bianco nelle immagini JPEG?] (http://photo.stackexchange.com/questions/3332/how-do-i-correct-white-balance-in-jpeg-images)
@BartArondson Questa domanda in realtà non riguarda l'applicazione del bilanciamento del bianco * automatico * a un lotto di immagini in modo non interattivo, però.
@junkyardsparkle la risposta accettata non farebbe esattamente questo? Impostare il bilanciamento del bianco su "Auto" sulla prima immagine e quindi applicare le stesse impostazioni agli altri file. Sulla base di [questa risposta] (http://photo.stackexchange.com/a/30897/9161) penso che imposterà tutte le immagini sul bilanciamento del bianco automatico, non si limiterà a copiare e incollare il valore di colore / tinta.
@junkyardsparkle: se imposto "auto" o simile alla prima immagine e lo applico a tutta l'immagine, in darktable viene applicata la stessa trasformazione (basata sulla prima immagine) su tutte le immagini
@BartArondson Il software menzionato in quella risposta non è utile a molte persone e questa domanda è stata contrassegnata come "open-source". :)
@wiso Sì, questo è un problema noto in darktable. C'è stata [discussione sulla mailing list] (http://www.mail-archive.com/darktable-users%40lists.sourceforge.net/msg03392.html) su come implementare il comportamento che desideri, tuttavia, quindi lo farà probabilmente alla fine esistono.
@junkyardsparkle Ah, ho sorvolato sul tag open-source ... Ho ritirato il voto duplicato.
Pensavo che fosse stato risolto [in Darktable 1.4] (http://photo.stackexchange.com/a/56476/13834)? È possibile creare un modulo predefinito che verrà applicato con auto come impostazione predefinita. Puoi quindi applicare questo preset quando apri un'immagine, ma non sono sicuro di come farlo applicare come batch.
@JamieKitson Funziona per la correzione dell'obiettivo, e possibilmente l'esposizione e altri moduli con una casella di controllo "auto" (non ho provato), ma con il bilanciamento del bianco è necessario selezionare "bilanciamento del bianco spot" da un elenco ... se c'è un modo per applicarlo automaticamente all'importazione, forniscilo come risposta - non ne sono a conoscenza.
@junkyardsparkle Sembra che tu abbia ragione. Penso di averlo testato su foto scattate in modo simile e ho pensato che funzionasse.
Due risposte:
#1
+7
junkyardsparkle
2015-05-15 01:24:25 UTC
view on stackexchange narkive permalink

Se trovi che premere il pulsante "auto" nella finestra di dialogo dei livelli di GIMP generalmente fa quello che stai cercando, puoi raggrupparlo come descritto qui.

In particolare, dovresti inserire questo script:

  (define (batch-auto-levels pattern) (let * ((filelist (cadr (file-glob pattern 1)))) (while (not (null? filelist)) (let * ((filename (car filelist)) (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename))) (drawable (car (gimp-image-get-active-layer image )))) (gimp-levels-stretch drawable) (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename) (gimp-image-delete image)) (set! filelist (cdr filelist)))))  

nella directory degli script di GIMP (~ / .gimp-xx / scripts / o l'equivalente di Windows) denominata 'batch-auto-levels.scm' e quindi eseguire

  gimp -ifd -b '(batch-auto-levels "* .jpg")' -b '(g imp-quit 0) " 

all'interno della directory contenente le immagini. Tieni presente che questo sovrascriverà le immagini : copiale in una directory di prova e lavoraci finché non sai che i risultati sono quelli che desideri. Assicurati anche che i tuoi metadati siano intatti (GIMP è abbastanza buono su questo in questi giorni). È possibile impostare la qualità JPEG che si desidera utilizzare come predefinita nella finestra di dialogo di esportazione JPEG di GIMP, quindi chiudere GIMP prima di eseguire lo script batch.

#2
+1
ochuko
2016-07-27 17:56:00 UTC
view on stackexchange narkive permalink

puoi utilizzare Bimp> gimp-level-stretch. Funziona. L'ho usato su 200 immagini e ho dovuto rielaborarne solo 10. Fantastico.

Il collegamento in questa risposta è interrotto.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...