How do I compare the intensity vs wavelength( lambda 1,2,3,4,5 upto n ; a total of 97 bands) at a particular pixel between two(or more) hyperspectral images?

2 views (last 30 days)
Using Matlab R2013a ; I am working on hyperspectral images from a Specim camera (600-925nm) ; images are in the .raw format (bil raster) I use the following command to read the file C0.raw
A=multibandread('C0.raw',[1952,2048,97],'uint16',0,'bil','ieee-le',{'Band','Direct',[601,710,800,905]})
just like C0.raw I have ten other images ( C1,C2,C3,C4...)
Id like to know how to compare the spectral response(in terms of intensity) of a pixel say p(970,1051) at the four bands(601,710,800,905nm). Also the same comparison between multiple images at the same pixel. How can this be done? Any ideas?
I use this to visualise the data( and it does so correctly)
Min_val = min(min(min(A)))
Max_val = max(max(max(A)))
imshow(A(:,:,4),[Min_val Max_val])
I try to use plot(A(970,1051,:)) But it doesnt work out.

Accepted Answer

Image Analyst
Image Analyst on 5 Jan 2014
You have to know what element those wavelengths occur at. Maybe it's elements 20, 42, 61, and 81. So then you just extract those:
intensityAt601 = p(970,1051, 20);
intensityAt710 = p(970,1051, 42);
intensityAt800 = p(970,1051, 61);
intensityAt905 = p(970,1051, 81);
Then for the second image, use p2 or whatever you called that image.
  10 Comments
ALINA
ALINA on 25 Jan 2014
hi sindhuraj, can you show the code you have written.Since i am not able to retrive the spectral plot inspite of the code i wrote.Kindly please help.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!