Re: Getting ROI data from an image [message #77858 is a reply to message #77857] |
Fri, 30 September 2011 14:16   |
Rebecca
Messages: 4 Registered: October 2011
|
Junior Member |
|
|
That's great, and it makes so much sense, but it doesn't seem like IDL
obeys those laws of indexing. Using
temp = img[x,y,*]
produces an out of memory error. It's not hard to figure out why-
temp = img[x,y,0]
Produces a [npix, npix] array, where npix is the number of pixels
referenced in 'indices'. What I was expecting to happen was a [npix]
vector! IDL is playing by different rules here.
npix = N_ELEMENTS(indices)
z = INTARR(npix)
temp = img[x,y,z]
That produces the magical vector array I want. So, is there any way to
play by these rules and grab 300 bands worth of data at once so I have
a [npix, bands] array? Or should I give up the chase and just FOR loop
it?
On Sep 30, 4:41 pm, David Fanning <n...@dfanning.com> wrote:
> Rebecca Brown writes:
>> OK, I can see how using the histogram w/ reverse indices will help
>> quickly get the indices associated with each ROI. That's a great help,
>> I wouldn't even need a FOR loop.
>> h = HISTOGRAM(result, MIN = 0, MAX = classes, NBINS = classes+1,
>> REVERSE_INDICES=ri)
>
>> But this doesn't answer the problem I was having, which perhaps I
>> didn't speak to as directly as I wanted- or perhaps you both are
>> simply more versed at array indexing than I am! With HISTOGRAM or
>> WHERE, it returns a 1D index of a 2D array (result), but I need to
>> pull hyperspectral data from a 3D array using those indexes. My
>> hyperspectral 'img' array might be 320 x 1000 x 300, for example. I
>> cannot simply call
>> temp = img[ ri[ri[1]:ri[2]-1], *]
>> And get the data I need. How would this be accomplished instead?
>
> I think you need one more step:
>
> s = Size(result, /DIMENSIONS)
> h = Histogram(result, ....., REVERSE_INDICES=ri)
> indices = ReverseIndices(ri, 1) ; As an example.
> colrow = Array_Indices(s, indices, /DIMENSIONS)
> x = Reform(colrow[0,*])
> y = Reform(colrow[1,*])
> temp = img[x,y,*]
>
> Cheers,
>
> David
>
> --
> David Fanning, Ph.D.
> Fanning Software Consulting, Inc.
> Coyote's Guide to IDL Programming:http://www.idlcoyote.com/
> Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|