darktable, gestire gli obiettivi

Pubblicato da Maurizio il 30/10/2019
Aggiornato il 28/12/2022
Tempo di lettura, circa 3 minuti

blog

La correzione di eventuali difetti causati dalle lenti è una funzione che non può mancare in un software per lo sviluppo fotografico, ma può diventare una spina nel fianco nel caso in cui il nostro obiettivo non fosse riconosciuto automaticamente da darktable.

Prima di tutto è opportuno ricordare che la correzione dei difetti dei vari obiettivi è effettuato grazie ad un sotware esterno, Lensfun e che lo stesso Lensfun identifica gli obiettivi grazie ad un terzo software, EXIV2.

Quindi - nel caso in cui ci fosse qualche malfunzionamento - occorre innanzitutto capire DOVE il problema ha origine!

Come mi capita spesso di dire: per poter risolvere un problema bisogna prima di tutto capire esattamente di che problema si tratta!

Come mi capita spesso di dire: per poter risolvere un problema bisogna prima di tutto capire esattamente di che problema si tratta!

In caso di problemi, quindi, occorre prima capire se è Lensfun la causa dei nostri mal di testa…

Puoi trovare a questo link la lista degli obiettivi supportati. Verifica se il tuo obiettivo è già inserito sul database.

Lensfun è un progetto Open Source e non commerciale quindi non è inusuale non trovare obiettivi molto nuovi o lenti speciali quali fisheye spinti o obiettivi molto vecchi e quindi poco diffusi.

Sul sito di Lensfun trovi tutte le istruzioni necessarie per effettuare la calibrazione di un obiettivo non inserito ma questa operazione non è semplicissima (magari in futuro scriverò qualcosa).

Ora ti voglio dare una soluzione che non è neanche lontanamente perfetta ma che potrebbe risolvere il tuo problema in un minuto con estrema facilità!

Prima verifica: come viene rilevato il mio obiettivo?

darktable analizza i tag EXIF utilizzando exiv2

Prendi quindi un’immagine RAW da analizzare (ovviamente dovrà essere stata scattata con l’obiettivo che non viene riconosciuto) e lancia questo comando:

exiv2 -pt <file.raw> | grep LensID

Il prompt dei comandi ti restituirà il nome identificativo del tuo obiettivo.

Tamron SP AF 17-50mm F/2.8 XR Di II VC LD Aspherical (IF)

Perchè ti faccio fare questo? Perchè molto probabilmente il problema non è Lensfun ma exiv2 che non identifica correttamente l’obiettivo.

Oppure exiv2 identifica correttamente un obiettivo non incluso del database di Lensfun MA è sufficiente applicare la correzione calcolata per un altro obiettivo molto simile per ottenere un risultato accettabile (se non addirittura perfetto).

Nel mio caso - ad esempio - exiv2 riconosce perfettamente l’obiettivo ma Lensfun non lo annovera nel suo database.

La differenza è data unicamente dal sistema di riduzione delle vibrazioni (VC) quindi posso presupporre che applicando la correzione calcolata per l’obiettivo SENZA il controllo delle vibrazioni io possa ottenere comunque un buon risultato.

Anche nel caso in cui le differenze fossero molto più consistenti (ad esempio una marca di obiettivo sconosciuta) è sufficiente applicare in modo sequenziale la correzione degli obiettivi presenti sul modulo Correzione obiettivo di darktable per valutare visivamente la bontà della correzione apportata (e scegliere così quella che ci sembra funzionare meglio).

Fatto questo avrai a disposizione le due informazioni che ti servono ovvero:

  • Il nome del tuo obiettivo e
  • Il nome dell’obiettivo da utilizzare per applicare la correzione

Lo scopo del gioco è far credere a darktable che il tuo obiettivo (quello non riconosciuto) sia, in realtà, quello che lui riconosce perfettamente e per il quale è in grado di applicare le dovute correzioni.

Dovremo utilizzare un piccolo script Lua (per maggiori informazioni su Lua e il suo utilizzo in darktable ti rimando al sito ufficiale).

local dt = require "darktable"
dt.register_event("post-import-image",
  function (event, image)
    if image.exif_lens == "Tamron SP AF 17-50mm F/2.8 XR Di II VC LD Aspherical (IF)" then
      image.exif_lens = "Tamron SP AF 17-50mm F/2.8 XR Di II LD Aspherical (IF)"
    end
  end
)

Si tratta di una cosa molto semplice:

  1. Al momento dell’importazione dell’immagine (“post-import-image”)
  2. se trovi (if image.exif_lens) l’obiettivo XXX
  3. allora identificalo (image.exif-lens) come se fosse l’obiettivo YYY

In questo modo - abilitando il modulo Correzione obiettivo - darktable applicherà le correzioni in modo automatico senza costringerti a selezionare manualmente un obiettivo simile!

Lo script (e l’idea in sè) non sono miei ma di Tobias Hellinghaus aka Houz, uno degli sviluppatori di darktable.

Puoi trovare l’articolo originale (in inglese) sul sito di Tobias.




Vuoi essere il primo a lasciare un commento? Ne sarei felice!

Richiesto
Richiesto
Opzionale
Richiesto