floyd, halftone, hysteresis - create 1-bit images by dithering
fb/floyd [ input ]
fb/halftone screen [ input ]
fb/hysteresis low high [ input ]
Floyd reads a grey-scale input file (default standard input), and
reduces it to one bit per pixel using Floyd-Steinberg error-diffusion
dither, as improved by Ulichney. The resulting TYPE=bitmap picture
file is written to standard output.
Ulichney's algorithm involves randomly varying the Floyd-Steinberg dif-
fusion coefficients. As the random number generator is seeded from the
clock, floyd may produce different output if rerun on the same input.
Halftone reduces grey-scale images to one bit per pixel using ordered
dither. The screen argument is the name of a file containing a dither
matrix. Halftone searches for screens in /lib/fb/screens.
Hysteresis creates one-bit-per-pixel images by thresholding with hys-
teresis. Any value in the input image less than low is mapped to zero.
Any input value less than high is mapped to zero if any of its eight
neighbors is less than low. If low and high are equal, this is just an
ordinary thresholding operation.
Hysteresis makes a useful edge-detection operator if used on a high-
pass filtered image.