Maschera automaticamente parte sfocata di un'immagine


9

Per un progetto di ricerca sarebbe utile ottenere solo la parte messa a fuoco di un'immagine. Qualcuno conosce alcuni software che possono farlo? So che la prossima versione (tra qualche settimana) di Photoshop CC avrà qualcosa del genere, ma ci sono altre opzioni?


Cordiali saluti, il tuo uso di "get" è molto ambiguo qui. Cosa intendi con "ottieni solo questa parte" dell'immagine? Vuoi dire che è l'unico pixel che vuoi rimanere nel file? O vuoi semplicemente identificare quest'area per qualche tipo di analisi o cosa? "Seleziona" sarebbe un termine migliore, o "maschera" o addirittura "identifica"
Jasmine,

Se hai più di un'immagine (cioè simile allo stacking della messa a fuoco ma senza lo stacking effettivo), avrei una risposta che ti darebbe maschere a fuoco.
Unapiedra,

Buon punto @Jasmine. Ho i rami di un arbusto a fuoco su uno sfondo di alberi / arbusti (mettere su un tasto blu non è un'opzione), quindi per ridurre l'errore voglio limitare l'analisi ai rami. Questo può essere fatto mascherando o con un file ridotto con solo i pixel a fuoco.
LaurensP

@Unapiedra, è la prima volta che si sente parlare di focus stacking. In che modo quel metodo o derivata mi darebbe una maschera a fuoco? Avrò diverse foto al giorno per un mese, inquadratura fissa e distanza focale.
LaurensP

@LaurensP: in questo caso non sarebbe d'aiuto. Sospetto fortemente che la tua domanda sia sbagliata qui: è una domanda di programmazione e dovrebbe essere spostata su StackOverflow. Puoi anche espandere la tua domanda per dire cosa vuoi effettivamente fare / analizzare / ecc. Finora hai rivelato di voler analizzare i rami di un arbusto, come e perché non l'hai detto. Forse il clustering e la segmentazione sono un'opzione? Carica un'immagine di esempio, mentre ci sei.
Unapiedra,

Risposte:


5

Normalmente uso GIMP per questo --- questo probabilmente deve essere perfezionato per le procedure automatiche. La mia procedura è la seguente:

  1. Carico l'immagine, in questo caso http://rlog.rgtti.com/wp-content/uploads/2013/01/10/macro-lenses-are-expensive-all-of-them/paseo_15sep_more_rosse.jpg

  2. Ora copio il livello di sfondo e trasformo il nuovo livello in scala di grigi.

  3. Applico edge-detect per differenza di gaussiano:

inserisci qui la descrizione dell'immagine

giocando con i parametri per avere una bella area definita. Applica il filtro

  1. Ora applichi una soglia all'immagine:

inserisci qui la descrizione dell'immagine

... e questa è una mappa della tua nitidezza (quanto nitida decidi nel passaggio precedente impostando i parametri per i filtri).

  1. Ora puoi utilizzare gli "strumenti di selezione per colore", fare clic sul nero, quindi aumentare leggermente la selezione:

inserisci qui la descrizione dell'immagine

... una volta che sei soddisfatto, puoi salvare la selezione su un canale.

Si noti che la selezione non include le aree nitide che sono colorate in modo uniforme, senza bordi. Non conosco alcun modo per farlo automaticamente (è possibile?); ma puoi copiare il canale su un nuovo livello e

  1. modifica manualmente il livello per riempire di nero le aree nitide:

inserisci qui la descrizione dell'immagine

... e ripeti la procedura di selezione per colore per creare una nuova maschera.


Questo ti darà aree strutturate (con bordi). Il tuo uso della crescita è intelligente ma il risultato non è perfetto. Guarda l'interno della foglia sul lato sinistro. È a fuoco, ma non completamente nero nella maschera. Penso che questo potrebbe effettivamente essere impossibile da risolvere in quanto non si può distinguere tra sfocato e senza trama.
Unapiedra,

0

In Hugin puoi usare uno strumento che lo fa. Si chiama enfuse.

Problema : funziona solo su più immagini.

Qui puoi trovare un tutorial sull'uso di enfuse per il focus-stacking. Puoi ottenere le maschere (che è quello che vuoi) usando --save-masks.

enfuse --exposure-weight=0 --saturation-weight=0 --contrast-weight=1 \
       --hard-mask --save-masks --output=base.tif INPUTImage*.tif

Tuttavia, tieni presente che mentre questo è automatizzato, l'approccio di base è lo stesso della risposta di Rmano: Rileva il contrasto locale di grandi dimensioni. Per una spiegazione molto più dettagliata, dai un'occhiata a Local Contrast Detection e Advanced Focus Stacking nella documentazione di Enfuse.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.