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)