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

Home » Public Forums » archive » Re: Search and Replace in 2D Array (Image)
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Search and Replace in 2D Array (Image) [message #66653 is a reply to message #66652] Thu, 28 May 2009 13:19 Go to previous messageGo to previous message
Jean H. is currently offline  Jean H.
Messages: 472
Registered: July 2006
Senior Member
vikramivatury@gmail.com wrote:
> Hello,
>
> I have an image "m" which is [1229 x 1229] pixels that contains 1's
> and 0's. I also have an image "img" which is [1229 x 1229] that
> contains pixel IDs. For every 1 in image "m" it corresponds to a
> certain pixel ID in image "img". I am trying to write a loop in IDL
> that scans through the pixels of image "m" and when its get to a 1,
> spit out its information from "img". I used the 'where' function (w =
> where m gt 1.........ids = img(w))

should be GE or EQ, not GT, or you will never have the ones selected

and that worked fine in outputting
> a 1D array of 1510441 pixels, but I am trying to do it for a 2D array
> using loops.
>
> img = read_tiff('NP.tif')
> ids = fltarr(1229,1229)
>
> for i = 0,1228 do begin
> for j = 0,1228 do begin
> if (m(i,j) eq 1.) then begin

Be careful here. Don't use a float if your data is byte/integer. If it
is of type float, you must do "where X-1.0 lt epsilon"... read David
Fanning's "the sky is falling" article


> ids(i,j) = img(m(i,j))

This will always be equal to 1. Are you sure you want to subset m here?

> endif
> endfor
> endfor
>
> Any suggestions would be great.
>
> Thanks,
> Vikram

"where" remains your friend here.

img = read_tiff('NP.tif')
ids = fltarr(1229,1229)
OneIDX = where(m eq 1)
ids[oneIDX] = img[oneIDX]

If you really want, you can convert back the 1D index to 2D with
ARRAY_INDICES, but it changes nothing to the above.

Jean
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Search and Replace in 2D Array (Image)
Next Topic: Am I having a blackout?

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

Current Time: Fri Oct 10 03:20:19 PDT 2025

Total time taken to generate the page: 0.00178 seconds