Qual è il raggio ottimale della distribuzione gaussiana per determinare il colore dei pixel?


10

Utilizzando una distribuzione gaussiana di punti su un piano dell'immagine per calcolare un valore in pixel, quale raggio / deviazione standard fornirà la maggior parte delle informazioni nell'immagine finale? Un raggio troppo grande dà un'immagine sfocata e un raggio troppo piccolo trascura le informazioni più piccole di un pixel in modo che non contribuiscano all'immagine finale. Dov'è il compromesso ottimale? C'è una sola risposta a questa domanda o ci sono circostanze in cui può variare?

Sto pensando a questo in relazione al raytracing ma immagino che si applicherà ugualmente a cose come il ridimensionamento di un'immagine. Laddove le risposte differiscano, sono interessato a ciò che si applica durante il campionamento di un piano di immagine continuo, in modo che le posizioni dei pixel in un'immagine più grande non possano essere utilizzate per determinare un raggio ottimale.

Risposte:


7

Non sono sicuro che esista un raggio davvero ottimale: sarà una questione soggettiva basata sull'aspetto dell'immagine. Come dici tu, un raggio troppo grande porta alla sfocatura e un raggio troppo piccolo aliasing.

Mi piace impostare sigma = 0,5 px, in modo che il raggio complessivo sia di circa 1,5 px (poiché il gaussiano ha la maggior parte del suo peso entro ± 3 sigma della sua media). Nella mia esperienza che offre un buon compromesso tra sfocatura e aliasing, ma è solo un mio gusto, non basato su considerazioni oggettive.

A proposito, come parte di un post sul blog sull'antialiasing che ho scritto l'anno scorso (basato su una risposta che ho pubblicato sulla precedente incarnazione di questo sito!), Ho testato una varietà di kernel antialiasing contro un'immagine di prova sintetica e ne sono uscito con 0,5 px gaussiani come il mio preferito soggettivo.


Ricordo quella risposta l'ultima volta :) (all'epoca ero githubphagocyte). Interessante vederlo ampliato in un post sul blog.
trichoplax,

4

Immagina di voler rendere l'immagine di un pavimento piatto con un motivo a scacchiera bianco e nero uniforme che si estende fino all'orizzonte; le pedine sono abbastanza grandi da essere chiaramente visibili nei punti vicino alla telecamera ma non abbastanza grandi da essere distinguibili vicino all'orizzonte.

Vicino all'orizzonte, il pavimento dovrebbe semplicemente apparire come grigio uniforme. Vicino alla telecamera, le pedine dovrebbero apparire distinte. Tra la cinepresa e l'orizzonte l'aspetto del pavimento deve in qualche modo passare tra questi due estremi.

Se la scena viene trasformata in un filtro spaziale che ha un taglio molto ovino, ci sarà una certa distanza in cui il pavimento passa dall'essere a scacchi al grigio. Se si utilizza un filtro meno profondo, la transizione sarà molto più graduale, ma le cose vicine alla distanza di "taglio" originale saranno meno nitide di quanto non sarebbero state altrimenti.

Se si dovesse aggiungere un "muro" o ritagliare la scena per nascondere le parti distanti del pavimento, in modo tale che non fosse necessario avere parti del pavimento a scacchi sfocate in grigio, i risultati migliori si otterrebbero utilizzando il più ripido filtro, dando l'immagine più nitida. L'uso di un filtro più superficiale rinuncerebbe alla nitidezza dell'immagine allo scopo di prevenire una brutta transizione che non sarebbe stata comunque visibile.

Capire quale tipo di filtro utilizzare richiede quindi che si sappia qualcosa sul contenuto di frequenza spaziale delle informazioni da visualizzare. Se l'immagine non contiene nulla di interessante che si avvicini a Nyquist, l'uso di un filtro ripido produrrà i risultati più nitidi. Se, tuttavia, il contenuto dell'immagine supera Nyquist, l'uso di un filtro graduale eviterà brutte "transizioni". Nessun approccio singolo sarà ottimale per tutti i casi.


2

Secondo la mia opinione ed esperienza, non credo che esista una risposta univoca ... dal momento che praticamente in letteratura puoi facilmente trovare esempi di filtri adattativi (cioè di dimensioni variabili).

Penso che la risposta effettiva dovrebbe essere correlata sia al contesto delle applicazioni (ad esempio hardware o software, in tempo reale o meno) e al tipo di scena che sintetizzerai (alcune scene di solito comportano un diverso aliasing quando sono sintetizzate (io uso questo termine generale apposta)). Fondamentalmente la computer grafica è lo studio degli algoritmi e della struttura dei dati per la sintesi delle immagini, e tale definizione non è strettamente correlata a nessun tipo di applicazione.

Ovviamente un fattore importante è persino l'obiettivo da raggiungere con un processo di filtraggio (cioè non necessario che un offuscamento eccessivo possa essere negativo ...).

Se stai parlando di "bello da vedere", penso che potresti essere d'accordo con me quando dico che non esiste una misura specifica di "immagine piacevole".

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.