FLOYD(9.1)                                             FLOYD(9.1)

     NAME
          floyd, halftone, hysteresis - create 1-bit images by
          dithering

     SYNOPSIS
          fb/floyd [ input ]

          fb/halftone screen [ input ]

          fb/hysteresis low high [ input ]

     DESCRIPTION
          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 stan-
          dard output.

          Ulichney's algorithm involves randomly varying the Floyd-
          Steinberg diffusion coefficients.  As the random number gen-
          erator 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 hysteresis.  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 threshold-
          ing operation.

          Hysteresis makes a useful edge-detection operator if used on
          a high-pass filtered image.

     FILES
          /lib/fb/screens/*

     SOURCE
          /sys/src/fb/floyd.c
          /sys/src/fb/halftone.c
          /sys/src/fb/hysteresis.c

     SEE ALSO
          picfile(9.6)