Re: Correlation between bands using IDL [message #72013] |
Wed, 04 August 2010 22:10  |
Lavanya
Messages: 7 Registered: August 2010
|
Junior Member |
|
|
On Aug 4, 11:49 am, chris <rog...@googlemail.com> wrote:
> On 3 Aug., 11:30, Lavanya <lavany...@gmail.com> wrote:
>
>> Hi,
>
>> I am pretty much new in using IDL. I have been trying to read
>> multiband image data using envi_select and envi_file_query, where i
>> get the information about the data im using.
>> Now how could i find the correlation between any two bands (here the
>> number of bands i have is 242)
>> Finally i need to generate a output correlation matrix of 242 * 242.
>> Please help me how can i go about.
>
>> Thanks
>
> Hi,
> i don't understand what you want to do. Do you want to correlate
> pixel1 band1 with pixel2 band2, pixel1 band1 with pixel2 band3 and so
> on for all pixel and bands?
>
> Regards Chris
I wanted to find the correlation between
band1 band2, band1 band 3, band 1 band 4
band 2 band 1, band 2 band 3, band 2 band 4 and so on. Final result
should be of the matrix form n * n where n will be the number of bands
of the same image. Here i am using only one image which has 'n' bands
Please help
-Lavanya
|
|
|
|
|
Re: Correlation between bands using IDL [message #72159 is a reply to message #72013] |
Thu, 05 August 2010 00:25  |
rogass
Messages: 200 Registered: April 2008
|
Senior Member |
|
|
On 5 Aug., 07:10, Lavanya <lavany...@gmail.com> wrote:
> On Aug 4, 11:49 am, chris <rog...@googlemail.com> wrote:
>
>
>
>
>
>> On 3 Aug., 11:30, Lavanya <lavany...@gmail.com> wrote:
>
>>> Hi,
>
>>> I am pretty much new in using IDL. I have been trying to read
>>> multiband image data using envi_select and envi_file_query, where i
>>> get the information about the data im using.
>>> Now how could i find the correlation between any two bands (here the
>>> number of bands i have is 242)
>>> Finally i need to generate a output correlation matrix of 242 * 242.
>>> Please help me how can i go about.
>
>>> Thanks
>
>> Hi,
>> i don't understand what you want to do. Do you want to correlate
>> pixel1 band1 with pixel2 band2, pixel1 band1 with pixel2 band3 and so
>> on for all pixel and bands?
>
>> Regards Chris
>
> I wanted to find the correlation between
> band1 band2, band1 band 3, band 1 band 4
> band 2 band 1, band 2 band 3, band 2 band 4 and so on. Final result
> should be of the matrix form n * n where n will be the number of bands
> of the same image. Here i am using only one image which has 'n' bands
>
> Please help
>
> -Lavanya
Ok, as far as I understand you want to compute the Band-To-Band
correlations. You could do this (not vectorized) in this way:
IDL> n=242l
IDL> image_size_x=10
IDL> image_size_y=10
IDL> image=randomn(seed,image_size_x,image_size_y,n)
IDL> l=lindgen(n,n) mod n
IDL> xind=l[*]
IDL> yind=(temporary(transpose(l)))[*]
IDL> corr=fltarr(n,n)
IDL> for i=0l,(n*n)-1l do corr[i] = correlate((image[*,*,xind[i]])[*],
(image[*,*,yind[i]])[*])
IDL> corr=reform(corr,n,n,/over)
IDL> tvscl, corr
Hope it helps
CR
|
|
|