Half Toning Continuous Half Toning Color Half Toning

  • Slides: 74
Download presentation
Half Toning

Half Toning

Continuous Half Toning

Continuous Half Toning

Color Half Toning

Color Half Toning

Half toning and Colors

Half toning and Colors

Digital Half Toning

Digital Half Toning

Half Toning Emulating 5 different levels

Half Toning Emulating 5 different levels

Half Toning 10 levels

Half Toning 10 levels

Original

Original

Half Toning

Half Toning

Original

Original

Dithering

Dithering

Dithering and Halftoning Trade spatial for intensity resolution (works well for printing where dot

Dithering and Halftoning Trade spatial for intensity resolution (works well for printing where dot printing is very high) • Thresholding. • Random dither; Robert’s algorithm • Ordered dither • Error diffusion Your eye will average over an area - Spatial Integration

Thresholding Assume we want to quantize a gray-level image to a binary colormap. Map

Thresholding Assume we want to quantize a gray-level image to a binary colormap. Map the upper half of the gray-level scale to white, and the lower half to black – a simple threshold operation, preformed independently at each pixel.

Thresholding Original image. Simple threshold. n = 0. 5 Errors are low spatial frequencies.

Thresholding Original image. Simple threshold. n = 0. 5 Errors are low spatial frequencies.

Robert’s Algorithm • First add noise • Then quantize i r+1 1 Quantized to

Robert’s Algorithm • First add noise • Then quantize i r+1 1 Quantized to 0 r 0 x Moves errors to higher spatial frequencies. -> eye averages over an area.

Threshold

Threshold

Threshold + Noise

Threshold + Noise

Robert’s Algorithm Pink Blue

Robert’s Algorithm Pink Blue

The trouble with noise • Difficult to compute quickly. • Not reproducible. • Pre-compute

The trouble with noise • Difficult to compute quickly. • Not reproducible. • Pre-compute pseudo-random function and store in table. • Small tiled patterns sufficient

Dithering • It is possible to improve the quality of a quantized image by

Dithering • It is possible to improve the quality of a quantized image by distributing the quantized error. • Let’s have a closer look.

Dithering Thresholding Dithering

Dithering Thresholding Dithering

Dithering Each pixel produces a quatization error The quality of the result may be

Dithering Each pixel produces a quatization error The quality of the result may be improved by adjusting the threshold locally, so that adjacent pixels in small areas are quantized with different thresholds. This reduces the average local quantization error. Matrices of these threshold are called dither matrices.

Threshold + Noise

Threshold + Noise

Dithering

Dithering

Ordered Dithering • Trade off spatial resolution for intensity resolution. • Use dither patterns.

Ordered Dithering • Trade off spatial resolution for intensity resolution. • Use dither patterns. • Can be represented as a matrix.

Other possibilities

Other possibilities

The dithering matrix (3 x 3) 3 7 5 6 1 2 9 4

The dithering matrix (3 x 3) 3 7 5 6 1 2 9 4 8 For all Xpixels For all Ypixels v = approximate(x, y) i = x mod 3 j = y mod 3 if v >= M[i, j] then Set_Pixel(x, y, BLACK) else Set_Pixel(x, y, WHITE)

Dithering 3 7 5 6 1 2 9 4 8 83 7 5 1

Dithering 3 7 5 6 1 2 9 4 8 83 7 5 1 6 2 4 6 81 3 2 7 2 2 5 4 9 7 4 5 2 3 87 95 7 7 2 6 91 2 9 7 9 8 8 8 4 4 8 3 5 3 3 7 5 6 1 2 9 4 8 2 2 1 3 3 2 2 6 4 4 8 4 2 1 3 2 4 3 2 2 4 0 0 0 4 4 8 4 4 0 1 1 0 Dithering mask Image Binary image

Original

Original

Dithering

Dithering

Dithering

Dithering

Error Diffusion

Error Diffusion

Floyd-Steinberg Error Diffusion With this method, the average quatization error is reduced by propagating

Floyd-Steinberg Error Diffusion With this method, the average quatization error is reduced by propagating the error from each pixel to some of its neighbors in the scan order.

1 D Error Diffusion 1 0 1

1 D Error Diffusion 1 0 1

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0 10

1 D Error Diffusion 1 0 10

1 D Error Diffusion 1 0 101

1 D Error Diffusion 1 0 101

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

1 D Error Diffusion 1 0

Floyd-Steinberg Error Diffusion With this method, the average quatization error is reduced by propagating

Floyd-Steinberg Error Diffusion With this method, the average quatization error is reduced by propagating the error from each pixel to some of its neighbors in the scan order. e -3 e/8 -e/4 -3 e/8 Note that the error propagation weights must sum to one

Dither vs. Floyd-Steinberg

Dither vs. Floyd-Steinberg

Original Picture

Original Picture

Error diffusion result Dithering result

Error diffusion result Dithering result

Examples – Continue

Examples – Continue

Dithering: Note that each square ring is of different brightness

Dithering: Note that each square ring is of different brightness

Error Diffusion: Note that the error is distributed across the layers

Error Diffusion: Note that the error is distributed across the layers

Examples – Continue Original:

Examples – Continue Original:

Dithering

Dithering

Error Diffusion

Error Diffusion

Error Diffusion Set Acc. Err[] to zero; For each pixel in the image scanning

Error Diffusion Set Acc. Err[] to zero; For each pixel in the image scanning from left to right: value= Pixel_value(x, y) + Acc. Err[x, y]; if (value > WHITE/2) { Set_pixel(x, y, WHITE); Error = value - WHITE; } else { Set_pixel(x, y, BLACK); Error = value - BLACK; } if scanning from left to right { Acc. Err[x+1, y] += 3/8 * Error; Acc. Err[x, y+1] += 3/8 * Error; Acc. Err[x+1, y+1] += 2/8 * Error; }

Space Filling Curves • order of scan

Space Filling Curves • order of scan

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Hilbert curve (1 -4)

Space Filling Curves Peano curve

Space Filling Curves Peano curve

Context Based SFC

Context Based SFC

Original Image

Original Image

Threshholding

Threshholding

Bayer’s Ordered Dithering

Bayer’s Ordered Dithering

Error Diffusion

Error Diffusion

Median Cut (4 levels)

Median Cut (4 levels)

Median Cut (8 levels)

Median Cut (8 levels)