glenda.party
term% ls -F
term% cat index.txt
FILTERS(9.1)                                                      FILTERS(9.1)



NAME
       adapt,  ahe,  crispen,  laplace,  edge, edge2, edge3, extremum, median,
       nonoise, smooth, shadepic - image neighborhood operators

SYNOPSIS
       fb/adapt [ input ]

       fb/ahe [ input ]

       fb/crispen [ input ]

       fb/laplace [ input ]

       fb/edge [ input ]

       fb/edge2 [ input ]

       fb/edge3 [ input ]

       fb/extremum [ input ]

       fb/median [ input ]

       fb/nonoise [ input ]

       fb/smooth [ input ]

       fb/shadepic [ -lx y z ] [ input ]

DESCRIPTION
       Gathered here are descriptions of programs that compute the  pixels  of
       an  output image by performing some operation on a neighborhood of each
       pixel of their input image  (default  standard  input).   Each  program
       writes  the  output  image  on  standard  output.  The programs process
       multi-channel inputs by treating each channel independently.

       Adapt performs adaptive contrast enhancement by examining the  7×7  re‐
       gion  centered on each input pixel, remapping the center pixel linearly
       in a way that would send the neighborhood's maximum value  to  255  and
       its  minimum  to  0.  To avoid divide checks, no mapping is done if all
       pixels in the region have the same value.

       Ahe performs adaptive histogram equalization by examining the 17×17 re‐
       gion  centered on each input pixel, counting the number of pixels whose
       value is less than the center pixel. (It counts ½ for each pixel equal
       to  the center value.)  Output pixel values are 255 times the count di‐
       vided by the window size.

       Crispen examines the 3×3 region surrounding each input pixel, computing
       9 times the center pixel minus the sum of its eight neighbors.  This is
       a fairly extreme high-pass filter and sharpens edges substantially.

       Laplace computes 5 times the center pixel minus the  sum  of  its  four
       vertical  and horizontal neighbors.  This adds a 3×3 discrete Laplacian
       to the original image, and is a  less  extreme  high-pass  filter  than
       crispen.

       Edge, edge2, and edge3 detect edges in various ways.  Edge examines the
       3×3 region surrounding each input pixel, outputting 8 times the  center
       value minus the sum of its eight neighbors.

       Edge2 applies a Sobel operator to the input image.  It approximates the
       image's gradient by finite differences  on  a  3×3  neighborhood,  out‐
       putting the vector length of the gradient approximation.

       Edge3  likewise approximates the gradient of the input image.  The out‐
       put is roughly the phase angle of the  gradient  approximation,  scaled
       between 0 and 255.

       Extremum  examines  the  3×3  region surrounding each input pixel, out‐
       putting the value that differs most from the center value.  In case  of
       a tie, the larger candidate is chosen.

       Median  does noise reduction by replacing each pixel of the input image
       by the median of the 3×3 region surrounding it.

       Nonoise implements the Bayer-Powell noise reduction  filter.   It  com‐
       putes the average value of the eight neighbors of each pixel of the in‐
       put image, and substitutes it for the pixel value if the two differ  by
       more than 64.

       Smooth  low-pass filters its input image by convolution with a Bartlett
       window.

       Shadepic treats its input image as an array  of  elevations.   At  each
       pixel  it  approximates the normal vector to the height-field by finite
       differences on a 3×3 neighborhood and outputs 255 times its dot product
       with  the unit vector in the light-source direction specified by option
       -l (default 1,-1,1).  If the dot product is negative, it is clamped  at
       zero.  (This computation is just Lambertian diffuse reflection.)

SOURCE
       /sys/src/fb

SEE ALSO
       picfile(9.6)

BUGS
       There are too many weird wired-in sizes.



                                                                  FILTERS(9.1)