NAME
im_rank, im_rank_raw - rank filter
SYNOPSIS
#include <vips/vips.h>
int im_rank(in, out, xsize, ysize, n)
IMAGE *in, *out;
int xsize, ysize, n;
int im_rank_raw(in, out, xsize, ysize, n)
IMAGE *in, *out;
int xsize, ysize, n;
DESCRIPTION
im_rank() does rank filtering on an image. A window of size xsize by
ysize is passed over the image. At each position, the pixels inside the
window are sorted into ascending order and the pixel at the nth
position is output. n numbers from 0.
It works for any non-complex image type, with any number of bands. The
input is expanded by copying edge pixels before performing the
operation so that the output image has the same size as the input. Edge
pixels in the output image are therefore only approximate.
im_rank_raw() works just as im_rank(), but does not expand the input.
EXAMPLES
For a median filter with mask size m (3 for 3x3, 5 for 5x5, etc.) use
im_rank( in, out, m, m, m * m / 2 );
The special cases n == 0 and n == m * m - 1 are useful dilate and
expand operators.
RETURN VALUE
The function returns 0 on success and -1 on error.
SEE ALSO
im_conv(3), im_fastcor(3).
COPYRIGHT
1989-1996 The National Gallery and Birkbeck College
19 Aug 1996