ImageND(3) User Contributed Perl Documentation ImageND(3)
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(m); b(n); int adims(p); int bdims(q); [o]c(m))
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/column/cube-slice/etc. If this is a problem consider using zero-padding or something.
ninterpol()
N-dimensional interpolation routine
Signature: ninterpol(point(),data(n),[o]value())
$value = ninterpol($point, $data);
"ninterpol" uses "interpol" to find a linearly interpolated 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 triv-
ial (and ill-defined in general).
rebin
Signature: (a(m); [o]b(n); int ns => n)
N-dimensional rebinning algorithm
$new = rebin $a, $dim1, $dim2,..;. $new = rebin $a, $template; $new = rebin $a, $template, {Norm => 1};
Rebin an N-dimensional array to newly specified dimensions. Specifying `Norm' keeps the sum constant, otherwise the intensities are kept
constant. If more template dimensions are given than for the input pdl, these dimensions are created; if less, the final dimensions are
maintained 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 identical).
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 / documenta-
tion under certain conditions. For details, see the file COPYING in the PDL distribution. If this file is separated from the PDL distribu-
tion, the copyright notice should be included in the file.
perl v5.8.0 2003-01-29 ImageND(3)