Reading multispectral and hyperspectral scenes
We use the term multispectral to refer to scene spectral radiance estimated using simple instruments, such as multiple multiple illuminants and color filters. We use the term hyperspectral to refer to spectral radiances measured with specialized instruments that literally acquire each image in a narrow waveband.
In the end, however, both types of scenes are read in to generate the scene spectral radiance data. Some multispectral and hyperspectral scene data are included in data/images and much additional freely available scene radiance data can be found on the ImageVal web site. These are all formatted so they can be read using the function sceneFromFile.
The multispectral data are tyically stored in a compressed format, using the singular value decomposition (principal components).
When the data are compressed, the files contain the following variables:
- basis.basis: [N x M] matrix where N is the number of wavelength samples and M is the number of spectral basis functions
- basis.wave: [1 x N] vector containing the wavelength samples
- coefficients:[rows x cols x M] matrix of the model coefficients
- wave: [1 x N] vector containing the sampled wavelengths
- illuminant: Illuminant structure. See illuminantCreate.
Other multispectral and hyperspectral data can be downloaded from
https://exhibits.stanford.edu/data/browse/iset-hyperspectral-image-database
See also: s_sceneFromRGB, sceneFromFile
Copyright ImagEval Consulting LLC, 2013
Contents
ieInit;
Name the scene data file
fullFileName = fullfile(isetRootPath,... 'data','images','multispectral','StuffedAnimals_tungsten-hdrs');
Specify the wavelength sampling
wList = (400:10:700); meanLuminance = []; % Accepts the data display = []; % Use default ISET display structure (displayCreate)
Read the file and display the scene
scene = sceneFromFile(fullFileName,'multispectral',meanLuminance,display,wList);
ieAddObject(scene); sceneWindow
Reading multispectral data with mcCOEF. Saved using svd method ans = sceneWindow_App with properties: figure1: [1×1 Figure] FileMenu: [1×1 Menu] menuFileLoad: [1×1 Menu] menuFileSave: [1×1 Menu] menuSaveImage: [1×1 Menu] menuFileRefresh: [1×1 Menu] menuFileClose: [1×1 Menu] menuEdit: [1×1 Menu] menuEditSceneName: [1×1 Menu] menuEditNewScene: [1×1 Menu] menuCopyScene: [1×1 Menu] menuEditDelete: [1×1 Menu] menuEditDeleteSome: [1×1 Menu] menuSpectral: [1×1 Menu] menuSPDdiv: [1×1 Menu] menuSPDMult: [1×1 Menu] menuEditSetIlluminant: [1×1 Menu] menuResampleWave: [1×1 Menu] menuEditAdjustMonochrome: [1×1 Menu] menuEditTransform: [1×1 Menu] menuEditScaleSize: [1×1 Menu] editCrop: [1×1 Menu] menuEditTranspose: [1×1 Menu] menuEditRotate: [1×1 Menu] menuEditRotCW: [1×1 Menu] menuEditRotCCW: [1×1 Menu] menuEditFlip: [1×1 Menu] menuEditFlipHorizontal: [1×1 Menu] menuEditFlipVertical: [1×1 Menu] menuEditFontSize: [1×1 Menu] menuEditClearWindow: [1×1 Menu] menuEditViewer: [1×1 Menu] PlotMenu: [1×1 Menu] menuPlotRadiance: [1×1 Menu] menuPlotRadianceE: [1×1 Menu] menuPlotRadImGrid: [1×1 Menu] menuPlotIllumPhotons: [1×1 Menu] menuPlotIlluminant: [1×1 Menu] menuPlotIlluminantImage: [1×1 Menu] menuPlotReflectance: [1×1 Menu] menuPlotImTrueSize: [1×1 Menu] menuPlotMultipleRGB: [1×1 Menu] menuPlotImageSpectral: [1×1 Menu] menuPlotDepth: [1×1 Menu] menuPlotDepthContour: [1×1 Menu] menuScene: [1×1 Menu] menuSceneMacbeth: [1×1 Menu] menuSceneMacbethTungsten: [1×1 Menu] menuSceneMacbethD50: [1×1 Menu] menuSceneMacbethD65: [1×1 Menu] menuSceneMacbethC: [1×1 Menu] menuSceneMacbethFluorescent: [1×1 Menu] menuSceneMacbethVisIR: [1×1 Menu] menuSceneLstar: [1×1 Menu] menuScenesTest: [1×1 Menu] menuScenesSweep: [1×1 Menu] menuHarmonic: [1×1 Menu] menuSceneFreqOrient: [1×1 Menu] menuSceneSlantedBar: [1×1 Menu] menuSceneZonePlate: [1×1 Menu] menuSceneMackay: [1×1 Menu] menuSceneCheckerboard: [1×1 Menu] menuScenePointArray: [1×1 Menu] menuSceneGridLines: [1×1 Menu] menuSceneTestLine: [1×1 Menu] menuSceneRadialLines: [1×1 Menu] menuUniform: [1×1 Menu] menuSceneUniformPhoton: [1×1 Menu] menuSceneUniformEE: [1×1 Menu] menuUniformD65: [1×1 Menu] menuSceneUniformEESpecify: [1×1 Menu] menuSceneUniformBBspecify: [1×1 Menu] menuScenesRamp: [1×1 Menu] menuSceneNoise: [1×1 Menu] menuSceneFile: [1×1 Menu] menuSceneMultiSpec: [1×1 Menu] menuSceneChooseRGB: [1×1 Menu] menuFileChooseFileMono: [1×1 Menu] menuAn: [1×1 Menu] menuAnalyzeLine: [1×1 Menu] menuAnalyzeLineH: [1×1 Menu] menuAnalyzeLineV: [1×1 Menu] menuAnalyzeLFFTH: [1×1 Menu] menuAnalyzeLFFTv: [1×1 Menu] menuAnalyzeLineWave: [1×1 Menu] menuAnalyzeLWH: [1×1 Menu] menuAnalyzeLWV: [1×1 Menu] menuAnalyzeROI: [1×1 Menu] menuLuminance: [1×1 Menu] menuAnalyzeChromaticity: [1×1 Menu] menPlotLumLin: [1×1 Menu] PlotLuminance: [1×1 Menu] menuAnIlluminantCCT: [1×1 Menu] menuHelp: [1×1 Menu] menuHelpSceneProgrammers: [1×1 Menu] menuHelpProgGuide: [1×1 Menu] menuHelpAppNotes: [1×1 Menu] UITable: [1×1 Table] Panel: [1×1 Panel] txtMessage: [1×1 Label] Panel_2: [1×1 Panel] popupRender: [1×1 DropDown] text21: [1×1 Label] txtDisplayGamma: [1×1 Label] editGamma: [1×1 EditField] btnPrev: [1×1 Button] btnNext: [1×1 Button] popupSelectScene: [1×1 DropDown] sceneImage: [1×1 UIAxes] MoreinfoButton: [1×1 Button] boxDescription: [1×1 ButtonGroup] txtSceneDescription: [1×1 Label] boxScene: [1×1 ButtonGroup] txtM: [1×1 Label] txtDist: [1×1 Label] editDistance: [1×1 EditField] txtDeg: [1×1 Label] txtFOV: [1×1 Label] editHorFOV: [1×1 EditField] txtCDM2: [1×1 Label] txtLum: [1×1 Label] editLuminance: [1×1 EditField] imageMenu: [1×1 ContextMenu] HorLumLineMenu: [1×1 Menu] RefreshMenu: [1×1 Menu]
