Algoritmo di Floyd-Steinberg

Da Wikipedia, l'enciclopedia libera.

L'algoritmo di Floyd-Steinberg è un algoritmo di dithering pubblicato nel 1976 da Robert W. Floyd e Louis Steinberg.

[modifica] Descrizione

Questo algoritmo compie il dithering diffondendo l'errore di quantizzazione di un pixel ai pixel vicini. Più specificamente, nell'algoritmo da essi proposto, l'errore di un pixel viene diffuso ai pixel circostanti in queste proporzioni: 7 / 16 dell'errore viene sommato al pixel a destra, 3 / 16 al pixel in basso a sinistra, 5 / 16 al pixel sottostante, e 1 / 16 al pixel in basso a destra.


\begin{matrix}
0          & 0         & {7\over16} \\
{3\over16} & {5\over16}& {1\over16}
\end{matrix}

Per esempio, consideriamo la matrice con i seguenti valori di pixel:


\begin{bmatrix}
0.00 & 0.00 & 0.00 \\
0.00 & 1.00 & 0.00 \\
0.00 & 0.00 & 0.00
\end{bmatrix}

Se il valore centrale è quantizzato a zero e l'errore viene diffuso secondo l'algoritmo di Floyd-Steinberg, questo sarà il risultato:


\begin{bmatrix}
0.00 & 0.00 & 0.00 \\
0.00 & 0    & 0.44 \\
0.19 & 0.31 & 0.06
\end{bmatrix}

Si noti che l'intero algoritmo può essere eseguito in-place, invece di accumulare l'errore in un buffer separato.

[modifica] Collegamenti esterni


Strumenti personali