2007-08-29 18:23:50 +02:00
|
|
|
.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.
|
|
|
|
|
2009-03-28 18:07:55 +01:00
|
|
|
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.
|
2007-08-29 18:23:50 +02:00
|
|
|
|
|
|
|
.B im_rank_raw()
|
2009-03-28 18:07:55 +01:00
|
|
|
works just as im_rank(), but does not expand the input.
|
2007-08-29 18:23:50 +02:00
|
|
|
.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
|