On Wed, 12 Mar 2014 00:33:05 +0100, Craig DeForest
<[email protected]> wrote:
You could generate a weighting variable and use the sum over the
weighting variable, instead of average(). But you're better off using
BAD values, which are awesome. You can set a given element to a special
value that indicates it's bad, and it will be ignored by all the
statistical routines. Also, if you're using glue() iteratively, you'll
do marginally better to accumulate n of your (3,N,M) images into a Perl
array, and then PDL them all at once. Like this:
$imgStack = pdl( double, map { rpic($_) } @files ); # 3,N,M,n
$img_NMn = $imgStack->average; # N,M,n;
$img_NMn->badflag(1);
$img_nNM = $img_NMn->mv(2,0);
do {
my($mean, undef, undef, undef, undef, undef, $sigma) =
$img_nNM->statsover;
$dex = whichND( abs($img_NMn-$mean) > $sigma);
$img_NMn->indexND($dex) .= $img_NMn->badvalue;
} until($img_NMn->nelem==0);
Hi Craig,
thanks for the hint with the baddies, looks very sleek. Will try that
tomorrow.
I don't quite get the do... until($img_NMn->nelem==0), I assume this
simply indicates that all images have been processed.
Note that the images are in a custom high dynamic range format, so instead
of using rpic() I wrote my own import routine.
Thanks again & best regards,
--Roland
--
Dr. Roland Schregle
Senior Research Associate
T direct: +41 41 349 39 77
[email protected]
Lucerne University of Applied Sciences and Arts
School of Engineering and Architecture
CC Envelopes and Solar Energy (EASE)
Technikumstrasse 21, CH-6048 Horw
T +41 41 349 33 11, F +41 41 349 39 60
www.hslu.ch/ccease
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl