.TH IM_RANK 3 "19 Aug 1996"
.SH NAME
im_rank, im_rank_raw \- rank filter 
.SH SYNOPSIS
#include <vips/vips.h>

int im_rank(in, out, xsize, ysize, n)
.br
IMAGE *in, *out;
.br
int xsize, ysize, n;

int im_rank_raw(in, out, xsize, ysize, n)
.br
IMAGE *in, *out;
.br
int xsize, ysize, n;

.SH DESCRIPTION
.B 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.

.B im_rank_raw()
works just as im_rank(), but does not expand the input.
.SH 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.

.SH RETURN VALUE
The function returns 0 on success and -1 on error.
.SH SEE ALSO
im_conv(3), im_fastcor(3).
.SH COPYRIGHT
1989-1996 The National Gallery and Birkbeck College
