MATLAB hyperspectral toolbox issues

22 visualizaciones (últimos 30 días)
William
William el 4 de Oct. de 2021
Comentada: William el 26 de Oct. de 2021
The MATLAB hyperspectral toolbox add-on to the Image Processing Toolbox seems pretty new and correspondingly buggy.
1) It appears incapable of reading in an image with an ENVI image with header, for example the command
>> hcube_mat = hypercube('AVIRIS_NG_refCube.img','AVIRIS_NG_refCube.hdr');
generates the following errors
Error using enviinfo (line 53)
File type number: char not supported.
Error in hypercube>getMetaforImg (line 1227)
header = enviinfo(imgFile);
Error in hypercube (line 304)
obj.Metadata = getMetaforImg(hdrfile, 'envi');
2) The Spectral Library capability seems a mess. I see no way of reading in a new spectral library other than the default ECOSTRESS library. Am I missing something here with regards to reading in my own ENVI spectral library?

Respuesta aceptada

William
William el 21 de Oct. de 2021
Thanks for your help with this issue. I'm attaching a *.mat file with those 3 variables.

Más respuestas (1)

Subhadeep Koley
Subhadeep Koley el 6 de Oct. de 2021
1) The error is originating from line number 53 of "enviinfo.m".
It seems that you have one local custom function in the name of "enviinfo.m", which is conflicting with the Hyperspectral Imaging Library's own enviinfo(__) function. There is no runnable code in line 53 of Hyperspectral Imaging Library's enviinfo(__) function. You can verify it by looking at the function defination of Hyperspectral Imaging Library's enviinfo(__) function.
Either rename/delete your local custom "enviinfo.m" function or remove it from MATLAB path, and then try again.
rmpath('thePathWhereCustomEnviinfoResides')
2) You can use the Hyperspectral Imaging Library's enviinfo(__) function to read metadata from your header file (.hdr file), and then use multibandread(_) to read the binary file containing your ENVI spectral library.
E.g.,
% Read the header file
info = enviinfo('enviSpectralLibrary.sli.hdr');
% Read the binary data file
lib = multibandread('enviSpectralLibrary.sli',[info.Height, info.Width, info.Bands],...
info.DataType, info.HeaderOffset, info.Interleave, info.ByteOrder);
Hope this helps!
  6 comentarios
Subhadeep Koley
Subhadeep Koley el 21 de Oct. de 2021
@William, Is it possible for you to attach the Fe2Fe3Mins2, sp202, and wav variables as a .mat file here?
Without the actual data, it's difficult to comment on the issue.
William
William el 26 de Oct. de 2021
I thought I responded to this, but maybe it didn't go out:
Thanks for your help with this issue. I'm attaching a *.mat file with those 3 variables.

Iniciar sesión para comentar.

Categorías

Más información sobre Hyperspectral Image Processing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by