Man Linux: Main Page and Category List


       im_rank, im_rank_raw - rank filter


       #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;


       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.


       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.


       The function returns 0 on success and -1 on error.


       im_conv(3), im_fastcor(3).


       1989-1996 The National Gallery and Birkbeck College

                                  19 Aug 1996