Esiste un programma in grado di analizzare la risoluzione "reale" di un'immagine?


8

Prendiamo l'immagine A: immagine di 2560 * 1920 pixel a fuoco perfetto. Tagliente come un rasoio. Sono 5 Mpix.

Prendiamo l'immagine B: immagine A ridimensionata a 5120 * 3840. Ora è un file da 20 Mpix, ma non ci sono nuovi dati nell'immagine, quindi - usando il buon senso - è ancora solo un file da 5 Mpix, solo "gonfio".

In teoria, si dovrebbe essere in grado di ridurre gradualmente le dimensioni dell'immagine B fino a quando non viene rilevata una nitidezza ragionevole (avvicinandola il più possibile all'immagine A, anche se senza confrontarle effettivamente a questo punto), e quindi derivare il conteggio dei "megapixel" reali dell'immagine: il dimensioni al di sotto delle quali le immagini stanno iniziando a perdere i dettagli.

Questo valore potrebbe essere facilmente utilizzato per determinare l'utilità di una foto: se la scatto leggermente sfuocata, posso comunque stamparla in dimensioni inferiori e nessuno se ne accorgerà. Oppure, potrebbe aiutare a valutare la qualità dell'obiettivo o del sensore: se una fotocamera da 24 Mpix non è in grado di catturare un'immagine con più di "Veri" 8 Mpix, allora qualcosa non va.

Quindi, andando al sodo: esiste un programma software che fa proprio questo? O sono condannato a scrivere il mio?


Da un commento dell'OP a una delle risposte:

Devo misurare quanti dettagli sta ottenendo il mio scanner per trasparenze positivo, prima di scansionare una raccolta di circa 2000 vecchie diapositive e considerarla digitalizzata. Se lo imposto su 19200 dpi ottici o qualcosa del genere, e continua a produrre immagini con dettagli persi, pari, per esempio, a una fotocamera da 5 Mpix, allora saprò che è male.

Questo è il vero problema che la domanda vuole risolvere. Tutto quanto sopra riguarda una soluzione percepita a quel problema alla radice.


Mi piace la domanda Dal punto di vista dei fotografi, sono d'accordo con la risposta di StephenG, ma dal punto di vista dell'ingegnere IT non sono d'accordo. Ma allora la domanda potrebbe essere meglio posta a DSP SE: dsp.stackexchange.com
pLumo


Da un commento del PO a una delle risposte: "Devo misurare quanti dettagli sta ottenendo il mio scanner per trasparenze positivo, prima di scansionare una raccolta di circa 2000 vecchie diapositive e considerarla digitalizzata. Se la imposto su ottica 19200 dpi o qualcosa del genere, e continua a produrre immagini con dettagli persi, pari, per esempio, a una fotocamera da 5 Mpix, quindi saprò che è male ". Questo è il vero problema che deve essere risolto qui. Il modo in cui viene posta questa domanda è un problema X → Y. Cioè, l'OP sta chiedendo come realizzare una soluzione percepita, piuttosto che chiedendo come risolvere il problema alla radice.
Michael C

Risposte:


4

Un approccio potrebbe essere quello di calcolare la trasformata bidirezionale di Fourier dell'immagine e provare a decidere la frequenza spaziale al di sopra della quale la trasformata (o, diciamo, la sua potenza) diventa rumore, cioè non correlato e piccolo. Mai provato niente del genere, ma deve essere collegato in qualche modo con una rigorosa definizione di risoluzione?


Concordato; una FFT 2D o una trasformata di coseno discreta 2D (DCT) sarebbe l'approccio più semplice per calcolare la risoluzione effettiva di un'immagine. Con ciò, potresti riconoscere quando la risoluzione è diventata limitata a prescindere dal fatto che sia stata causata dalla qualità del vetro, dalla messa a fuoco errata, dalla limitazione della diffrazione, dalla compressione dell'immagine pesante, ecc.
dgatwood

Questo è quello che stavo pensando, ho pensato che qualcuno avrebbe già costruito uno strumento del genere. Ciò dovrebbe rispondere efficacemente alla domanda "questa immagine sfrutta appieno la sua risoluzione" e dopo alcune calibrazioni dovrebbe renderla comparabile ad altre dimensioni. Vado con questo. Grazie!
Sinus Mackowaty,

5

In teoria, si dovrebbe essere in grado di ridurre gradualmente le dimensioni dell'immagine B fino a quando non viene rilevata una nitidezza ragionevole (avvicinandola il più possibile all'immagine A, anche se senza confrontarle effettivamente a questo punto), e quindi derivare il conteggio dei "megapixel" reali dell'immagine: il dimensioni al di sotto delle quali le immagini stanno iniziando a perdere i dettagli.

Stai iniziando supponendo che l'immagine B non abbia più dettagli. Ma anche una regione completamente piatta ha dettagli: è solo che è piatta.

Una mancanza di dettagli o modifiche non indica una mancanza di dati o risoluzione di immagini validi.

Questo valore potrebbe essere facilmente utilizzato per determinare l'utilità di una foto: se la scatto leggermente sfuocata, posso comunque stamparla in dimensioni inferiori e nessuno se ne accorgerà.

Questo non funzionerà come pensi.

Le persone, secondo la mia esperienza, non si preoccupano dei dettagli di un'immagine tanto quanto sono acuti riguardo ai contenuti emotivi e / o informativi. Ciò che l'immagine li fa sentire o ciò che l'immagine dice loro o entrambi.

A meno che un'immagine non abbia una messa a fuoco eccezionalmente scarsa, è generalmente OK per qualche scopo. Le uniche persone, nella mia esperienza, che si preoccupano della messa a fuoco perfetta sono i fotografi e gli editori dei media (e gli editori stanno diventando meno esigenti in questi giorni).

Una volta ho avuto una (cattiva) foto tecnica della figlia di un parente con sfocatura da movimento, vibrazioni della fotocamera, scarsa messa a fuoco e illuminazione scadente.

È stato bloccato sul loro muro per oltre un decennio. Nessuna protesta da parte mia o offerta di sparare di nuovo ha mai funzionato, a proposito. A loro piace quella foto.

Il valore di un'immagine non è definito dalla nitidezza o dai dettagli risolti, tranne in impostazioni commerciali molto particolari e anche lì non ha la priorità principale. Nessun editore di notizie si preoccuperà di quanti piccoli dettagli ci siano davvero, ad esempio, nello scatto "esclusivo" di alcune celebrità in vacanza o, in effetti, delle vittime dell'ultimo oltraggio.

Oppure, potrebbe aiutare a valutare la qualità dell'obiettivo o del sensore -

Hanno grafici di risoluzione per questo. Questi sono schemi fissi ben definiti e adatti all'analisi al computer. Dai un'occhiata al sito web di DxOMark qualche volta.

Testare la risoluzione su qualsiasi cosa tranne che su un target ben definito e precisamente noto è inutile.

se una fotocamera da 24 Mpix non è in grado di catturare un'immagine con più di "Veri" 8 Mpix, allora qualcosa non va.

Solo perché un sensore non cattura più dettagli non significa che ci sia qualcosa di sbagliato a parte le tue aspettative.

I dettagli acquisiti dipendono da molti fattori. Innanzitutto l'esistenza del dettaglio. Quindi le condizioni di scatto, l'apertura e le caratteristiche ottiche dell'obiettivo. Le caratteristiche di illuminazione, velocità dell'otturatore, ISO e rumore. Limitazioni della diffrazione.

La realtà è che il conteggio dei pixel ha molto meno in pratica a che fare con quanti dettagli ottieni realmente quando scatti molti altri fattori che limitano ciò che è possibile o pratico.


3
Sebbene molti dei tuoi punti siano validi, rispondono solo a casi specifici dei possibili usi che ho citato. I gradienti semplici e senza tratti sono ovviamente non misurabili usando i metodi che sto immaginando, ma sono un caso marginale. I grafici di risoluzione non aiutano con obiettivi danneggiati o non calibrati. Il "megapixel percettivo" di DxOMark è stato ampiamente contestato. Certo, le immagini leggermente sfocate a volte sono altrettanto utili, ma per quanto riguarda quelle VERAMENTE sfocate? Possono essere trasformati in miniature o altre miniature, ma ciò è solitamente determinato "ad occhio", mentre potrebbe essere calcolato in una certa misura.
Sinus Mackowaty,

Se vuoi farlo in particolare, fai una ricerca sul web per "misurare la nitidezza dell'immagine" che ti darà alcuni link a documenti di ricerca su questo argomento. Se non sei matematicamente propenso, ti suggerisco di saltare questo. È possibile rintracciare un codice open source per questo, ma non ne sono a conoscenza.
StephenG

2
E, per aggiungere un altro punto all'argomento "superfici piatte": questo è esattamente ciò che intendo, come esempio. Una foto di una superficie piana senza molti bordi e dettagli potrebbe, tecnicamente, essere scattata con una fotocamera molto più povera, senza perdita di qualità. In un caso pratico specifico, devo misurare la quantità di dettagli che sta ottenendo il mio scanner per trasparenze positivo, prima di scansionare una raccolta di circa 2000 vecchie diapositive e considerarla digitalizzata. Se lo imposto su 19200 dpi ottici o qualcosa del genere, e continua a produrre immagini con dettagli persi, pari, per esempio, a una fotocamera da 5 Mpix, allora saprò che è male.
Sinus Mackowaty,

1
Se scopro che lo scanner che ho è una cazzata e potrei fare di meglio acquistandone uno diverso, perderò parecchio tempo a costruire i meccanismi di automazione, qualunque essi siano. Preferirei non maledirmi per sempre per aver rovinato l'unica volta che
riuscirò

1
"(e gli editori stanno diventando meno esigenti in questi giorni)." Solo quando non pagano per l'immagine.
Michael C

1

Dopo alcuni esperimenti ho finito per creare una serie di immagini ridimensionate, ridimensionate all'indietro e confrontate con l'originale. Se c'è stata una differenza massima significativa nei valori dei pixel, la qualità è considerata persa. Se c'è una piccola perdita, significa che la foto originale non era eccezionale per cominciare. Pubblicherò uno snippet PHP più tardi.

Purtroppo, le immagini che sono sfocate direzionalmente o sono sfocate ma hanno alcuni artefatti nitidi dall'elaborazione, finiscono per essere giudicate nitide - e non credo che ci sia un modo per aggirare questo.


Che tipo di ricampionamento hai fatto durante l'upscaling? Vicino più vicino, interpolazione lineare, interpolazione quadratica, gaussiana, Dodgson o qualcos'altro?
Michael,

@Michael: IIRC, ho usato linear per semplicità.
Sinus Mackowaty,
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.