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
multichannel inputs by treating each channel independently.
Adapt performs adaptive contrast enhancement by examining the 7x7
region centered on each input pixel, remapping the center pixel lin
early 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 17x17
region 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 divided by the window size.
Crispen examines the 3x3 region surrounding each input pixel, computing
9 times the center pixel minus the sum of its eight neighbors. This is
a fairly extreme highpass 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 3x3 discrete Laplacian
to the original image, and is a less extreme highpass filter than
crispen.
Edge, edge2, and edge3 detect edges in various ways. Edge examines the
3x3 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 3x3 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 3x3 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 3x3 region surrounding it.
Nonoise implements the BayerPowell noise reduction filter. It com
putes the average value of the eight neighbors of each pixel of the
input image, and substitutes it for the pixel value if the two differ
by more than 64.
Smooth lowpass 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 heightfield by finite
differences on a 3x3 neighborhood and outputs 255 times its dot product
with the unit vector in the lightsource 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 wiredin sizes.
FILTERS(9.1)
