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

Home » Public Forums » archive » Re: Overlaying a contour on a small image
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Overlaying a contour on a small image [message #58979] Fri, 29 February 2008 12:31
wlandsman is currently offline  wlandsman
Messages: 743
Registered: June 2000
Senior Member
On Feb 29, 1:41 pm, David Fanning <n...@dfanning.com> wrote:
> Isn't this what you want:
>
> im = dist(9)
> thispostion = [0.1, 0.1, 0.9, 0.9]
> TVIMAGE, bytscl(im), POSITION=thisPosition, /KEEP_ASPECT_RATIO, $
> /NOINTERP, /ERASE
> contour,im, Position=thisPosition,/xsty,/ysty,/noerase,$
> scale_vector(findgen(9), 0, 9), scale_vector(findgen(9), 0, 9)
>

I don't think any type of scaling is going to work. (The above
example does not match the contour overlay with the single high
pixel.) The point is that there really is no contour information at
the half-pixel edges, since contours depend on the change between
pixels. (You can display an image of 1 pixel, but you can't contour
1 pixel.) The program sent by Paolo (thanks!) works by not
displaying the outer half pixel where there is no contour
information. I actually like this approach.

The ISOCONTOUR routine looks like it could be used to extrapolate
contours to the outer half pixel, perhaps in an easier way than the
PATH_XY keyword to CONTOUR.

Cheers, --Wayne
Re: Overlaying a contour on a small image [message #58984 is a reply to message #58979] Fri, 29 February 2008 11:15 Go to previous message
pgrigis is currently offline  pgrigis
Messages: 436
Registered: September 2007
Senior Member
Just trying it out, using pg_plotimage

http://hea-www.harvard.edu/~pgrigis/idl_stuff/pg_plotimage.p ro

;linear test array, easier to deal with than dist
a=[[0.,1,2,1,0],[1,2,3,2,1],[2,3,4,3,2],[1,2,3,2,1],[0,1,2,1 ,0]]

loadct,5
pg_plotimage,a,findgen(5),findgen(5)
contour,a,/over,levels=[0.5,1.5,2.5,3.5],color=0

(The contours should have a vertex exactly at the pixel
boundaries by construction of the image)

The half pixel at the boundary is missing however.

Paolo


David Fanning wrote:
> David Fanning writes:
>
>> Wayne Landsman writes:
>>
>>> Does anyone have a routine to overlay a contour plot on a small image
>>> that is both accurate and aesthetically pleasing?
>>
>> Isn't this what you want:
>>
>> im = dist(9)
>> thispostion = [0.1, 0.1, 0.9, 0.9]
>> TVIMAGE, bytscl(im), POSITION=thisPosition, /KEEP_ASPECT_RATIO, $
>> /NOINTERP, /ERASE
>> contour,im, Position=thisPosition,/xsty,/ysty,/noerase,$
>> scale_vector(findgen(9), 0, 9), scale_vector(findgen(9), 0, 9)
>
> I don't know. What do you think of this:
>
> im = dist(9)
> im[2,2] = 15
> im[4:5, 4:5] = 10
> thispostion = [0.1, 0.1, 0.9, 0.9]
> TVIMAGE, bytscl(im), POSITION=thisPosition, /KEEP_ASPECT_RATIO, $
> /NOINTERP, /ERASE
> contour,im, Position=thisPosition,/xsty,/ysty,/noerase,$
> scale_vector(findgen(9), 0, 9), scale_vector(findgen(9), 0,9), $
> level = 6
>
> isocontour, im, v, c, c_value = 6
> Plots, v[0,0:6]+0.5, v[1,0:6]+0.5, color=fsc_color('dodger blue')
> Plots, v[0,7:*]+0.5, v[1,7:*]+0.5, color=fsc_color('dodger blue')
>
>
> Note how I have to add a half pixel to the ISOCONTOUR to get
> it anywhere near where I want it. Weird.
>
> Cheers,
>
> David
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming: http://www.dfanning.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: Overlaying a contour on a small image [message #58985 is a reply to message #58984] Fri, 29 February 2008 11:06 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
David Fanning writes:

> Wayne Landsman writes:
>
>> Does anyone have a routine to overlay a contour plot on a small image
>> that is both accurate and aesthetically pleasing?
>
> Isn't this what you want:
>
> im = dist(9)
> thispostion = [0.1, 0.1, 0.9, 0.9]
> TVIMAGE, bytscl(im), POSITION=thisPosition, /KEEP_ASPECT_RATIO, $
> /NOINTERP, /ERASE
> contour,im, Position=thisPosition,/xsty,/ysty,/noerase,$
> scale_vector(findgen(9), 0, 9), scale_vector(findgen(9), 0, 9)

I don't know. What do you think of this:

im = dist(9)
im[2,2] = 15
im[4:5, 4:5] = 10
thispostion = [0.1, 0.1, 0.9, 0.9]
TVIMAGE, bytscl(im), POSITION=thisPosition, /KEEP_ASPECT_RATIO, $
/NOINTERP, /ERASE
contour,im, Position=thisPosition,/xsty,/ysty,/noerase,$
scale_vector(findgen(9), 0, 9), scale_vector(findgen(9), 0,9), $
level = 6

isocontour, im, v, c, c_value = 6
Plots, v[0,0:6]+0.5, v[1,0:6]+0.5, color=fsc_color('dodger blue')
Plots, v[0,7:*]+0.5, v[1,7:*]+0.5, color=fsc_color('dodger blue')


Note how I have to add a half pixel to the ISOCONTOUR to get
it anywhere near where I want it. Weird.

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
Re: Overlaying a contour on a small image [message #58986 is a reply to message #58985] Fri, 29 February 2008 10:41 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Wayne Landsman writes:

> Does anyone have a routine to overlay a contour plot on a small image
> that is both accurate and aesthetically pleasing?

Isn't this what you want:

im = dist(9)
thispostion = [0.1, 0.1, 0.9, 0.9]
TVIMAGE, bytscl(im), POSITION=thisPosition, /KEEP_ASPECT_RATIO, $
/NOINTERP, /ERASE
contour,im, Position=thisPosition,/xsty,/ysty,/noerase,$
scale_vector(findgen(9), 0, 9), scale_vector(findgen(9), 0, 9)

You can find SCALE_VECTOR here:

http://www.dfanning.com/programs/scale_vector.pro

Cheers,

David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Simple question: promptusertext method
Next Topic: Simple question: promptusertext method

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

Current Time: Wed Oct 08 15:40:09 PDT 2025

Total time taken to generate the page: 0.00544 seconds