comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Unexpected rebin behavior
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Unexpected rebin behavior [message #36271] Wed, 03 September 2003 09:20 Go to previous message
mchinand is currently offline  mchinand
Messages: 66
Registered: September 1996
Member
Performing rebin on 2-d (or any higher dimension) integer arrays sometimes
give results I didn't expect. Here's a trivial example array:

IDL> help, b
B INT = Array[2, 2]

IDL> print, b
8 9
10 13

Minifying this to a 1x1 array with rebin gives:

IDL> print, rebin(b,1,1)
9

But,

IDL> print, fix(total(b)/4)
10

which is what I would have expected as the result from rebin. I think
what rebin is doing is first performing a rebin in one direction and then
performing it in the other direction on the new, intermediate rebinned
array. So the above is equivalent to:

IDL> print, rebin(rebin(b,1,2),1,1)
9

Switching the order of the rebinning yields a different result:

IDL> print, rebin(rebin(b,2,1),1,1)
10

Or equivalently:

IDL> print, rebin(transpose(b),1,1)
10


I was using rebin to reduce the size of an image and expected it to do
neighborhood averaging for the new array. The integer truncation after
rebinning along each direction can lead to different results than
averaging the neighborhood in a single step. I guess this isn't really a
bug (the manual only describes how rebin works in one dimension), but was
unexpected, at least for me. I simple work-around is to cast the array to
float and then back to integer (or just keep as float) after the rebin:

IDL> print, fix(rebin(float(b),1,1))
10


--Mike Chinander

--
Michael Chinander
m-chinander@uchicago.edu
Department of Radiology
University of Chicago
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: Can a CALL_EXTERNAL .dll create a window?
Next Topic: Can a CALL_EXTERNAL .dll create a window?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 19:59:14 PDT 2025

Total time taken to generate the page: 0.24039 seconds