PDL::ImageND
ImageND(D)     User Contributed Perl Documentation     ImageND(D)



NAME
       PDL::ImageND - useful image processing routines which work
       in N-dimensions

DESCRIPTION
       In some cases (though not as many as one would like) it is
       possible to write general routines that operate on
       N-dimensional objects.

       An example in this module is a N-Dim convolution algorithm
       I made up one day - it works but the boundary condtions
       are a bit funny.

SYNOPSIS
        use PDL::ImageND;


FUNCTIONS
       convolve

         Signature: (a(a); b(b); int adims(s); int bdims(s); [o]c(c))

       N-dimensional convolution algorithm.

       $new = convolve $a, $kernel

       Convolve an array with a kernel, both of which are
       N-dimensional.

       Note because of the algorithm used (writing N-dim routines
       is not easy on the brain!) the boundary conditions are a
       bit strange. They wrap, but up to the NEXT row/col-
       umn/cube-slice/etc. If this is a problem consider using
       zero-padding or something.

       ninterpol()

       N-dimensional interpolation routine

        Signature: ninterpol(point(),data(a),[o]value())

             $value = ninterpol($point, $data);

       "ninterpol" uses "interpol" to find a linearly interpo-
       lated value in N dimensions, assuming the data is spread
       on a uniform grid.  To use an arbitrary grid distribution,
       need to find the grid-space point from the indexing
       scheme, then call "ninterpol" -- this is far from trivial
       (and ill-defined in general).

       rebin

         Signature: (a(a); [o]b(b); int ns => n)

       N-dimensional rebinning algorithm

       $new = rebin $a, $dim1, $dim2,..;.  $new = rebin $a, $tem-
       plate; $new = rebin $a, $template, {Norm => 1};

       Rebin an N-dimensional array to newly specified dimen-
       sions.  Specifying `Norm' keeps the sum constant, other-
       wise the intensities are kept constant.  If more template
       dimensions are given than for the input pdl, these dimen-
       sions are created; if less, the final dimensions are main-
       tained as they were.

       So if $a is a 10 x 10 pdl, then "rebin($a,15)" is a 15 x
       10 pdl, while "rebin($a,15,16,17)" is a 15 x 16 x 17 pdl
       (where the values along the final dimension are all iden-
       tical).

       circ_mean_p

       Calculates the circular mean of an n-dim image and returns
       the projection. Optionally takes the center to be used.

          $cmean=circ_mean_p($im);
          $cmean=circ_mean_p($im,{Center => [10,10]});


       circ_mean

       Smooths an image by applying circular mean.  Optionally
       takes the center to be used.

          circ_mean($im);
          circ_mean($im,{Center => [10,10]});


AUTHORS
       Copyright (C) Karl Glazebrook 1997.  All rights reserved.
       There is no warranty. You are allowed to redistribute this
       software / documentation under certain conditions. For
       details, see the file COPYING in the PDL distribution. If
       this file is separated from the PDL distribution, the
       copyright notice should be included in the file.



perl v5.6.1                 2002-04-08                 ImageND(D)