"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "GENERATED/PDL/Image2D.pm" between
PDL-2.079.tar.gz and PDL-2.080.tar.gz

About: PDL (Perl Data Language) aims to turn perl into an efficient numerical language for scientific computing (similar to IDL and MatLab).

Image2D.pm  (PDL-2.079):Image2D.pm  (PDL-2.080)
skipping to change at line 46 skipping to change at line 46
use PDL; # ensure qsort routine available use PDL; # ensure qsort routine available
use PDL::Math; use PDL::Math;
use Carp; use Carp;
#line 48 "Image2D.pm" #line 48 "Image2D.pm"
=head1 FUNCTIONS =head1 FUNCTIONS
=cut =cut
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
#line 63 "Image2D.pm" #line 63 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
#line 68 "Image2D.pm" #line 68 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
#line 73 "Image2D.pm" #line 73 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 conv2d =head2 conv2d
=for sig =for sig
Signature: (a(m,n); kern(p,q); [o]b(m,n); int opt) Signature: (a(m,n); kern(p,q); [o]b(m,n); int opt)
=for ref =for ref
2D convolution of an array with a kernel (smoothing) 2D convolution of an array with a kernel (smoothing)
skipping to change at line 96 skipping to change at line 96
=> Truncate - truncate at boundary => Truncate - truncate at boundary
=> Replicate - repeat boundary pixel values => Replicate - repeat boundary pixel values
=for bad =for bad
Unlike the FFT routines, conv2d is able to process bad values. Unlike the FFT routines, conv2d is able to process bad values.
=cut =cut
#line 120 "Image2D.pm" #line 120 "Image2D.pm"
#line 1059 "../../blib/lib/PDL/PP.pm" #line 949 "../../blib/lib/PDL/PP.pm"
sub PDL::conv2d { sub PDL::conv2d {
my $opt; $opt = pop @_ if ref($_[$#_]) eq 'HASH'; my $opt; $opt = pop @_ if ref($_[$#_]) eq 'HASH';
die 'Usage: conv2d( a(m,n), kern(p,q), [o]b(m,n), {Options} )' die 'Usage: conv2d( a(m,n), kern(p,q), [o]b(m,n), {Options} )'
if $#_<1 || $#_>2; if $#_<1 || $#_>2;
my($x,$kern) = @_; my($x,$kern) = @_;
my $c = $#_ == 2 ? $_[2] : $x->nullcreate; my $c = $#_ == 2 ? $_[2] : $x->nullcreate;
PDL::_conv2d_int($x,$kern,$c, PDL::_conv2d_int($x,$kern,$c,
(!(defined $opt && exists $$opt{Boundary}))?0: (!(defined $opt && exists $$opt{Boundary}))?0:
(($$opt{Boundary} eq "Reflect") + (($$opt{Boundary} eq "Reflect") +
2*($$opt{Boundary} eq "Truncate") + 2*($$opt{Boundary} eq "Truncate") +
3*($$opt{Boundary} eq "Replicate"))); 3*($$opt{Boundary} eq "Replicate")));
return $c; return $c;
} }
#line 140 "Image2D.pm" #line 140 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*conv2d = \&PDL::conv2d; *conv2d = \&PDL::conv2d;
#line 147 "Image2D.pm" #line 147 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 med2d =head2 med2d
=for sig =for sig
Signature: (a(m,n); kern(p,q); [o]b(m,n); double [t]tmp(pq); int opt) Signature: (a(m,n); kern(p,q); [o]b(m,n); double [t]tmp(pq); int opt)
=for ref =for ref
2D median-convolution of an array with a kernel (smoothing) 2D median-convolution of an array with a kernel (smoothing)
skipping to change at line 159 skipping to change at line 159
=> Replicate - repeat boundary pixel values => Replicate - repeat boundary pixel values
=for bad =for bad
Bad values are ignored in the calculation. If all elements within the Bad values are ignored in the calculation. If all elements within the
kernel are bad, the output is set bad. kernel are bad, the output is set bad.
=cut =cut
#line 194 "Image2D.pm" #line 194 "Image2D.pm"
#line 1059 "../../blib/lib/PDL/PP.pm" #line 949 "../../blib/lib/PDL/PP.pm"
sub PDL::med2d { sub PDL::med2d {
my $opt; $opt = pop @_ if ref($_[$#_]) eq 'HASH'; my $opt; $opt = pop @_ if ref($_[$#_]) eq 'HASH';
die 'Usage: med2d( a(m,n), kern(p,q), [o]b(m,n), {Options} )' die 'Usage: med2d( a(m,n), kern(p,q), [o]b(m,n), {Options} )'
if $#_<1 || $#_>2; if $#_<1 || $#_>2;
my($x,$kern) = @_; my($x,$kern) = @_;
croak "med2d: kernel must contain some positive elements.\n" croak "med2d: kernel must contain some positive elements.\n"
if all( $kern <= 0 ); if all( $kern <= 0 );
my $c = $#_ == 2 ? $_[2] : $x->nullcreate; my $c = $#_ == 2 ? $_[2] : $x->nullcreate;
PDL::_med2d_int($x,$kern,$c, PDL::_med2d_int($x,$kern,$c,
(!(defined $opt && exists $$opt{Boundary}))?0: (!(defined $opt && exists $$opt{Boundary}))?0:
(($$opt{Boundary} eq "Reflect") + (($$opt{Boundary} eq "Reflect") +
2*($$opt{Boundary} eq "Truncate") + 2*($$opt{Boundary} eq "Truncate") +
3*($$opt{Boundary} eq "Replicate"))); 3*($$opt{Boundary} eq "Replicate")));
return $c; return $c;
} }
#line 215 "Image2D.pm" #line 215 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*med2d = \&PDL::med2d; *med2d = \&PDL::med2d;
#line 222 "Image2D.pm" #line 222 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 med2df =head2 med2df
=for sig =for sig
Signature: (a(m,n); [o]b(m,n); int __p_size; int __q_size; int opt) Signature: (a(m,n); [o]b(m,n); int __p_size; int __q_size; int opt)
=for ref =for ref
2D median-convolution of an array in a pxq window (smoothing) 2D median-convolution of an array in a pxq window (smoothing)
skipping to change at line 224 skipping to change at line 224
=> Replicate - repeat boundary pixel values => Replicate - repeat boundary pixel values
=for bad =for bad
med2df does not process bad values. med2df does not process bad values.
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
=cut =cut
#line 271 "Image2D.pm" #line 271 "Image2D.pm"
#line 1059 "../../blib/lib/PDL/PP.pm" #line 949 "../../blib/lib/PDL/PP.pm"
sub PDL::med2df { sub PDL::med2df {
my $opt; $opt = pop @_ if ref($_[$#_]) eq 'HASH'; my $opt; $opt = pop @_ if ref($_[$#_]) eq 'HASH';
die 'Usage: med2df( a(m,n), [o]b(m,n), p, q, {Options} )' die 'Usage: med2df( a(m,n), [o]b(m,n), p, q, {Options} )'
if $#_<2 || $#_>3; if $#_<2 || $#_>3;
my($x,$p,$q) = @_; my($x,$p,$q) = @_;
croak "med2df: kernel must contain some positive elements.\n" croak "med2df: kernel must contain some positive elements.\n"
if $p == 0 && $q == 0; if $p == 0 && $q == 0;
my $c = $#_ == 3 ? $_[3] : $x->nullcreate; my $c = $#_ == 3 ? $_[3] : $x->nullcreate;
&PDL::_med2df_int($x,$c,$p,$q, &PDL::_med2df_int($x,$c,$p,$q,
(!(defined $opt && exists $$opt{Boundary}))?0: (!(defined $opt && exists $$opt{Boundary}))?0:
(($$opt{Boundary} eq "Reflect") + (($$opt{Boundary} eq "Reflect") +
2*($$opt{Boundary} eq "Truncate") + 2*($$opt{Boundary} eq "Truncate") +
3*($$opt{Boundary} eq "Replicate"))); 3*($$opt{Boundary} eq "Replicate")));
return $c; return $c;
} }
#line 292 "Image2D.pm" #line 292 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*med2df = \&PDL::med2df; *med2df = \&PDL::med2df;
#line 299 "Image2D.pm" #line 299 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 box2d =head2 box2d
=for sig =for sig
Signature: (a(n,m); [o] b(n,m); int wx; int wy; int edgezero) Signature: (a(n,m); [o] b(n,m); int wx; int wy; int edgezero)
=for ref =for ref
fast 2D boxcar average fast 2D boxcar average
skipping to change at line 283 skipping to change at line 283
approximately linearly with window size. approximately linearly with window size.
=for bad =for bad
box2d does not process bad values. box2d does not process bad values.
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
=cut =cut
#line 342 "Image2D.pm" #line 342 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*box2d = \&PDL::box2d; *box2d = \&PDL::box2d;
#line 349 "Image2D.pm" #line 349 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 patch2d =head2 patch2d
=for sig =for sig
Signature: (a(m,n); int bad(m,n); [o]b(m,n)) Signature: (a(m,n); int bad(m,n); [o]b(m,n))
=for ref =for ref
patch bad pixels out of 2D images using a mask patch bad pixels out of 2D images using a mask
skipping to change at line 316 skipping to change at line 316
if all neighbours are bad, the original data value is if all neighbours are bad, the original data value is
copied across. copied across.
=for bad =for bad
This routine does not handle bad values - use L</patchbad2d> instead This routine does not handle bad values - use L</patchbad2d> instead
=cut =cut
#line 384 "Image2D.pm" #line 384 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*patch2d = \&PDL::patch2d; *patch2d = \&PDL::patch2d;
#line 391 "Image2D.pm" #line 391 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 patchbad2d =head2 patchbad2d
=for sig =for sig
Signature: (a(m,n); [o]b(m,n)) Signature: (a(m,n); [o]b(m,n))
=for ref =for ref
patch bad pixels out of 2D images containing bad values patch bad pixels out of 2D images containing bad values
skipping to change at line 350 skipping to change at line 350
is performed (see L</patch2d>). is performed (see L</patch2d>).
=for bad =for bad
patchbad2d handles bad values. The output ndarray I<may> contain patchbad2d handles bad values. The output ndarray I<may> contain
bad values, depending on the pattern of bad values in the input ndarray. bad values, depending on the pattern of bad values in the input ndarray.
=cut =cut
#line 425 "Image2D.pm" #line 425 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*patchbad2d = \&PDL::patchbad2d; *patchbad2d = \&PDL::patchbad2d;
#line 432 "Image2D.pm" #line 432 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 max2d_ind =head2 max2d_ind
=for sig =for sig
Signature: (a(m,n); [o]val(); int [o]x(); int[o]y()) Signature: (a(m,n); [o]val(); int [o]x(); int[o]y())
=for ref =for ref
Return value/position of maximum value in 2D image Return value/position of maximum value in 2D image
skipping to change at line 377 skipping to change at line 377
Contributed by Tim Jeness Contributed by Tim Jeness
=for bad =for bad
Bad values are excluded from the search. If all pixels Bad values are excluded from the search. If all pixels
are bad then the output is set bad. are bad then the output is set bad.
=cut =cut
#line 463 "Image2D.pm" #line 463 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*max2d_ind = \&PDL::max2d_ind; *max2d_ind = \&PDL::max2d_ind;
#line 470 "Image2D.pm" #line 470 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 centroid2d =head2 centroid2d
=for sig =for sig
Signature: (im(m,n); x(); y(); box(); [o]xcen(); [o]ycen()) Signature: (im(m,n); x(); y(); box(); [o]xcen(); [o]ycen())
=for ref =for ref
Refine a list of object positions in 2D image by centroiding in a box Refine a list of object positions in 2D image by centroiding in a box
skipping to change at line 406 skipping to change at line 406
=for bad =for bad
Bad pixels are excluded from the centroid calculation. If all elements are Bad pixels are excluded from the centroid calculation. If all elements are
bad (or the pixel sum is 0 - but why would you be centroiding bad (or the pixel sum is 0 - but why would you be centroiding
something with negatives in...) then the output values are set bad. something with negatives in...) then the output values are set bad.
=cut =cut
#line 501 "Image2D.pm" #line 501 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*centroid2d = \&PDL::centroid2d; *centroid2d = \&PDL::centroid2d;
#line 508 "Image2D.pm" #line 508 "Image2D.pm"
#line 797 "image2d.pd" #line 797 "image2d.pd"
=head2 crop =head2 crop
=for ref =for ref
skipping to change at line 486 skipping to change at line 486
return ccNcompt(shift,8); return ccNcompt(shift,8);
} }
*cc8compt = \&PDL::cc8compt; *cc8compt = \&PDL::cc8compt;
sub PDL::cc4compt{ sub PDL::cc4compt{
return ccNcompt(shift,4); return ccNcompt(shift,4);
} }
*cc4compt = \&PDL::cc4compt; *cc4compt = \&PDL::cc4compt;
#line 588 "Image2D.pm" #line 588 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 ccNcompt =head2 ccNcompt
=for sig =for sig
Signature: (a(m,n); int+ [o]b(m,n); int con) Signature: (a(m,n); int+ [o]b(m,n); int con)
=for ref =for ref
Connected component labeling of a binary image. Connected component labeling of a binary image.
skipping to change at line 520 skipping to change at line 520
where the second parameter specifies the connectivity (4 or 8) of the labeling. where the second parameter specifies the connectivity (4 or 8) of the labeling.
=for bad =for bad
ccNcompt ignores the bad-value flag of the input ndarrays. ccNcompt ignores the bad-value flag of the input ndarrays.
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
=cut =cut
#line 631 "Image2D.pm" #line 631 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*ccNcompt = \&PDL::ccNcompt; *ccNcompt = \&PDL::ccNcompt;
#line 638 "Image2D.pm" #line 638 "Image2D.pm"
#line 996 "image2d.pd" #line 996 "image2d.pd"
=head2 polyfill =head2 polyfill
=for ref =for ref
skipping to change at line 716 skipping to change at line 716
return $im->where(PDL::pnpoly_pp($im, $ps)) if $parsed->current-> {'Method'} eq 'pnpoly'; return $im->where(PDL::pnpoly_pp($im, $ps)) if $parsed->current-> {'Method'} eq 'pnpoly';
} }
my $msk = zeroes(long,$im->dims); my $msk = zeroes(long,$im->dims);
PDL::polyfill_pp($msk, $ps, 1); PDL::polyfill_pp($msk, $ps, 1);
return $im->where($msk); return $im->where($msk);
} }
*polyfillv = \&PDL::polyfillv; *polyfillv = \&PDL::polyfillv;
#line 837 "Image2D.pm" #line 837 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 rot2d =head2 rot2d
=for sig =for sig
Signature: (im(m,n); float angle(); bg(); int aa(); [o] om(p,q)) Signature: (im(m,n); float angle(); bg(); int aa(); [o] om(p,q))
=for ref =for ref
rotate an image by given C<angle> rotate an image by given C<angle>
skipping to change at line 758 skipping to change at line 758
rot2d is faster. rot2d is faster.
=for bad =for bad
rot2d ignores the bad-value flag of the input ndarrays. rot2d ignores the bad-value flag of the input ndarrays.
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
=cut =cut
#line 887 "Image2D.pm" #line 887 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*rot2d = \&PDL::rot2d; *rot2d = \&PDL::rot2d;
#line 894 "Image2D.pm" #line 894 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 bilin2d =head2 bilin2d
=for sig =for sig
Signature: (Int(n,m); O(q,p)) Signature: (Int(n,m); O(q,p))
=for ref =for ref
Bilinearly maps the first ndarray in the second. The Bilinearly maps the first ndarray in the second. The
skipping to change at line 785 skipping to change at line 785
ndarray which is supposed to be larger than the first one. ndarray which is supposed to be larger than the first one.
=for bad =for bad
bilin2d ignores the bad-value flag of the input ndarrays. bilin2d ignores the bad-value flag of the input ndarrays.
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
=cut =cut
#line 924 "Image2D.pm" #line 924 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*bilin2d = \&PDL::bilin2d; *bilin2d = \&PDL::bilin2d;
#line 931 "Image2D.pm" #line 931 "Image2D.pm"
#line 1058 "../../blib/lib/PDL/PP.pm" #line 948 "../../blib/lib/PDL/PP.pm"
=head2 rescale2d =head2 rescale2d
=for sig =for sig
Signature: (Int(m,n); O(p,q)) Signature: (Int(m,n); O(p,q))
=for ref =for ref
The first ndarray is rescaled to the dimensions of the second The first ndarray is rescaled to the dimensions of the second
skipping to change at line 817 skipping to change at line 817
rescale2d. rescale2d.
=for bad =for bad
rescale2d ignores the bad-value flag of the input ndarrays. rescale2d ignores the bad-value flag of the input ndarrays.
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.
=cut =cut
#line 966 "Image2D.pm" #line 966 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*rescale2d = \&PDL::rescale2d; *rescale2d = \&PDL::rescale2d;
#line 973 "Image2D.pm" #line 973 "Image2D.pm"
#line 1450 "image2d.pd" #line 1450 "image2d.pd"
=head2 fitwarp2d =head2 fitwarp2d
=for ref =for ref
skipping to change at line 1381 skipping to change at line 1381
my $kernel = lc shift; my $kernel = lc shift;
my $code = shift; my $code = shift;
barf "Unknown kernel $kernel sent to $code\n" . barf "Unknown kernel $kernel sent to $code\n" .
"\tmust be one of [" . join(',',keys %warp2d) . "]\n" "\tmust be one of [" . join(',',keys %warp2d) . "]\n"
unless exists $warp2d{$kernel}; unless exists $warp2d{$kernel};
return $kernel; return $kernel;
} }
} }
#line 1539 "Image2D.pm" #line 1539 "Image2D.pm"
#line 1059 "../../blib/lib/PDL/PP.pm" #line 949 "../../blib/lib/PDL/PP.pm"
sub PDL::warp2d { sub PDL::warp2d {
my $opts = PDL::Options->new( { KERNEL => "tanh", NOVAL => 0 } ); my $opts = PDL::Options->new( { KERNEL => "tanh", NOVAL => 0 } );
$opts->options( pop(@_) ) if ref($_[$#_]) eq "HASH"; $opts->options( pop(@_) ) if ref($_[$#_]) eq "HASH";
die "Usage: warp2d( in(m,n), px(np,np); py(np,np); [o] out(m,n), {Options} ) " die "Usage: warp2d( in(m,n), px(np,np); py(np,np); [o] out(m,n), {Options} ) "
if $#_<2 || $#_>3; if $#_<2 || $#_>3;
my $img = shift; my $img = shift;
my $px = shift; my $px = shift;
my $py = shift; my $py = shift;
skipping to change at line 1403 skipping to change at line 1403
# safety checks # safety checks
my $copt = $opts->current(); my $copt = $opts->current();
my $kernel = _check_kernel( $$copt{KERNEL}, "warp2d" ); my $kernel = _check_kernel( $$copt{KERNEL}, "warp2d" );
&PDL::_warp2d_int( $img, $px, $py, $out, $kernel, $$copt{NOVAL} ); &PDL::_warp2d_int( $img, $px, $py, $out, $kernel, $$copt{NOVAL} );
return $out; return $out;
} }
#line 1565 "Image2D.pm" #line 1565 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*warp2d = \&PDL::warp2d; *warp2d = \&PDL::warp2d;
#line 1572 "Image2D.pm" #line 1572 "Image2D.pm"
#line 2199 "image2d.pd" #line 2199 "image2d.pd"
=head2 warp2d_kernel =head2 warp2d_kernel
=for ref =for ref
skipping to change at line 1430 skipping to change at line 1430
The valid values for C<$name> are the same as the C<KERNEL> option The valid values for C<$name> are the same as the C<KERNEL> option
of L<warp2d()|/warp2d>. of L<warp2d()|/warp2d>.
=for example =for example
line warp2d_kernel( "hamming" ); line warp2d_kernel( "hamming" );
=cut =cut
#line 1598 "Image2D.pm" #line 1598 "Image2D.pm"
#line 1059 "../../blib/lib/PDL/PP.pm" #line 949 "../../blib/lib/PDL/PP.pm"
sub PDL::warp2d_kernel ($) { sub PDL::warp2d_kernel ($) {
my $kernel = _check_kernel( shift, "warp2d_kernel" ); my $kernel = _check_kernel( shift, "warp2d_kernel" );
my $nelem = _get_kernel_size(); my $nelem = _get_kernel_size();
my $x = zeroes( $nelem ); my $x = zeroes( $nelem );
my $k = zeroes( $nelem ); my $k = zeroes( $nelem );
&PDL::_warp2d_kernel_int( $x, $k, $kernel ); &PDL::_warp2d_kernel_int( $x, $k, $kernel );
return ( $x, $k ); return ( $x, $k );
# return _get_kernel( $kernel ); # return _get_kernel( $kernel );
} }
*warp2d_kernel = \&PDL::warp2d_kernel; *warp2d_kernel = \&PDL::warp2d_kernel;
#line 1619 "Image2D.pm" #line 1619 "Image2D.pm"
#line 1060 "../../blib/lib/PDL/PP.pm" #line 950 "../../blib/lib/PDL/PP.pm"
*warp2d_kernel = \&PDL::warp2d_kernel; *warp2d_kernel = \&PDL::warp2d_kernel;
#line 1626 "Image2D.pm" #line 1626 "Image2D.pm"
#line 29 "image2d.pd" #line 29 "image2d.pd"
=head1 AUTHORS =head1 AUTHORS
Copyright (C) Karl Glazebrook 1997 with additions by Robin Williams Copyright (C) Karl Glazebrook 1997 with additions by Robin Williams
(rjrw@ast.leeds.ac.uk), Tim Jeness (timj@jach.hawaii.edu), (rjrw@ast.leeds.ac.uk), Tim Jeness (timj@jach.hawaii.edu),
 End of changes. 34 change blocks. 
34 lines changed or deleted 34 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)