Read and Extract channel data from Hyperspectral images

6 views (last 30 days)
faheem ifti
faheem ifti on 16 Feb 2019
Answered: Subhadeep Koley on 8 Apr 2021
I have a hyperspectral tile which incl 3 x files:-
a. A data file of type "file".
b. An 'enp' file with the same name.
c. An 'HDR' file with the same name.
I want to extract different wavelenghts from this tile, view different channels, view image as RGB etc.
What tool should i use. I tried PLS+MIA toolbox but it gives error.

Answers (1)

Subhadeep Koley
Subhadeep Koley on 8 Apr 2021
You can use the hypercube(__) function to read and explore hyperspectral images.
% Read the hyperspectral image (specify your image file name here)
hCube = hypercube('jasperRidge2_R198.hdr');
% Compute RGB, CIR, and falsecolored image
rgbImg = colorize(hCube, 'method', 'rgb', 'ContrastStretching', true);
cirImg = colorize(hCube, 'method', 'cir', 'ContrastStretching', true);
fcImg = colorize(hCube, 'method', 'falsecolored', 'ContrastStretching', true);
% Visualize results
figure
tiledlayout(1, 3)
nexttile
imagesc(rgbImg)
axis image off
title('RGB image')
nexttile
imagesc(cirImg)
axis image off
title('CIR image')
nexttile
imagesc(fcImg)
axis image off
title('False-colored image')
For visualization of individual pixel spectra / hyperspectral band image you can use the interactive hyperspetralViewer App. e.g.
% Launch hyperspectral viewer
hyperspectralViewer(hCube)
Note: All the above mentioned fetures come under Image Processing Toolbox's Hyperspectral Imaging Library support package, and can be downloaded from here.

Community Treasure Hunt

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

Start Hunting!