This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Convert image, increasing apparent color resolution by dithering


X = dither(RGB, map)
X = dither(RGB, map, Qm, Qe)
BW = dither(I)


X = dither(RGB, map) creates an indexed image approximation of the RGB image in the array RGB by dithering the colors in the colormap map. The colormap cannot have more than 65,536 colors.

X = dither(RGB, map, Qm, Qe) creates an indexed image from RGB, where Qm specifies the number of quantization bits to use along each color axis for the inverse color map, and Qe specifies the number of quantization bits to use for the color space error calculations. If Qe < Qm, dithering cannot be performed, and an undithered indexed image is returned in X. If you omit these parameters, dither uses the default values Qm = 5, Qe = 8.

BW = dither(I) converts the grayscale image in the matrix I to the binary (black and white) image BW by dithering.

Class Support

RGB can be uint8, uint16, single, or double. I can be uint8, uint16, int16, single, or double. All other input arguments must be double. BW is logical. X is uint8, if it is an indexed image with 256 or fewer colors; otherwise, it is uint16.


dither increases the apparent color resolution of an image by applying Floyd-Steinberg's error diffusion dither algorithm.


[1] Floyd, R. W., and L. Steinberg, "An Adaptive Algorithm for Spatial Gray Scale," International Symposium Digest of Technical Papers, Society for Information Displays, 1975, p. 36.

[2] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 469-476.

See Also