Re: New Image Processing Routines [message #48483 is a reply to message #47677] |
Fri, 21 April 2006 05:02  |
Marshall Perrin
Messages: 44 Registered: December 2005
|
Member |
|
|
David Fanning <davidf@dfanning.com> wrote:
> OK, sports fans. Here are two new programs. I have
> to admit, with the right images (low signal to noise)
> this inverse hyperbolic sine function is GREAT!
> I can't wait to try this out on images with the new
> CCD camera we just got for the school.
>
> ASINHSCL -- Like BYTSCL and IMGSCL, but for images
> with "asinh magnitudes" ala Lupton, et. al.
Hi David,
I've finally gotten around to trying out asinh scaling (something I've been
meaning to do since, oh, 2004 when I first saw the paper by Lupton et al.).
First off, let me say that your new and improved xstretch is really
spectacular. I love the drag and drop setting of the min and max! Ah, simple
things can seem so spectacular to those of us used to direct graphics. :-/
But on to my main point. I think your ASINHSCL can be simplified considerably,
because the Alpha parameter is unnecessary. Or rather, Alpha and Beta aren't
independent. What actually sets the shape of the scaling law is their product.
Try varying them inversely (i.e. move Alpha up by a factor of 5, Beta
down by a factor of 5, so that their product remains constant) and I
think you'll see that the scaled image is unchanged. I've also
verified this behavior with some simple 1D plots (code attached
below). I've thought about the equations for a bit, but I don't yet
have a rigorous proof that this is true, but it is in all the
numerical examples I've tried. Then again, it's 4:30 am and
even on astronomer hours that's a bad time for doing math, so maybe
I'll figure it out tomorrow.
In any case, I think you can just remove alpha entirely and use beta
alone to tune the scaling. I note that Lupton et al. only mention
Beta as a tuning parameter as far as I can tell. I see there's
an alpha in Eric Sheldon's tvasinh.pro that you based your code on,
but I have no idea where he got it from...
- Marshall
pro testasinh
x = findgen(100)
plot,bytscl(x)
for i=-3,5 do begin
oplot,x,asinhscl(x,alpha=10,beta=10.^i)
endfor
for i=-3,5 do begin
oplot,x,asinhscl(x,alpha=10.^i,beta=10),lines=2,$
color=fsc_color('red')
endfor
xyouts,60,100,"Varying Beta, with Alpha=10"
xyouts,60,120,"Varying Alpha, with Beta=10",color=fsc_color('red')
end
|
|
|