Scyllarus: C++ Hyperspectral Processing Library
Hyperspectral Image Processing Pipeline
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
processing.h
Go to the documentation of this file.
1 /****************************************************************************************
2  * SCYLLARUS : C++ HYPERSPECTRAL PROCESSING LIBRARY
3  * processing.h - Hyperspectral Image processing methods.
4  *
5  * This computer code is subject to copyright:
6  * (c) National ICT Australia Limited (NICTA) 2013-2014 All Rights Reserved.
7  *
8  * Jeremy Oorloff, National ICT Australia (NICTA)
9  *
10  ***************************************************************************************/
11 
12 #ifndef PROCESSING_H_
13 #define PROCESSING_H_
14 
15 #include <armadillo>
16 #include <opencv2/opencv.hpp>
17 #include <opencv2/core/core.hpp>
18 #include <opencv2/highgui/highgui.hpp>
19 #include <opencv2/ml/ml.hpp>
20 #include <string>
21 
22 #include "logger.h"
23 #include "utility.h"
24 #include "image_utilities.h"
25 #include "op_node.h"
26 
27 namespace scyl
28 {
29 
30  arma::fmat mix_spectra_vec(const arma::fvec & abundances,
31  const arma::fvec & end_members,
32  bool normalise=true);
33 
34  arma::fvec wavelength_subset(const arma::fvec & set,
35  const arma::fvec & bounds);
36 
37  // Analysis Algorithms
38  void pca(const arma::fcube & I,
39  arma::fcube & principal_components,
40  arma::fvec & eigenvalues,
41  int num_components=10,
42  float threshold=0.001);
43 
44  // Classification Algorithms
45 
46  void unmix_by_spectra(const arma::fcube & I,
47  const arma::fvec & wavelengths,
48  const arma::fmat & spectra,
49  const arma::fvec & spectra_waves,
50  arma::fcube & abundances,
51  arma::ucube & indices,
52  int num_materials=5);
53 
54  void sam(const arma::fcube & I,
55  const arma::fvec & wavelengths,
56  const arma::fmat & spectra,
57  const arma::fvec & spectra_waves,
58  arma::fcube & angles,
59  arma::ucube & indices,
60  int num_materials=5);
61 
62  void svm(const arma::fcube & I,
63  const arma::fvec & wavelengths,
64  const arma::fmat & spectra,
65  const arma::fvec & spectra_waves,
66  const arma::uvec & spectra_labels,
67  arma::umat & indices);
68 
69  arma::fcube spectral_derivative(const arma::fcube & I,
70  const arma::fvec & wavelengths);
71 
72  arma::fmat band_maths(std::vector<const arma::fcube *> images, std::string expression);
73 
74 
75 }
76 
77 #endif /* PROCESSING_H_ */
arma::fmat mix_spectra_vec(const arma::fvec &abundances, const arma::fvec &end_members, bool normalise=true)
mix_spectra_vec() seems to merely replicate abundances across endmembers many bands.
Definition: processing.cpp:26
arma::fvec wavelength_subset(const arma::fvec &set, const arma::fvec &bounds)
wavelength_subset() removes elements from set that are outside of the range of elements in bounds...
Definition: processing.cpp:66
I.
Definition: scyllarus_types.h:114
void svm(const arma::fcube &I, const arma::fvec &wavelengths, const arma::fmat &spectra, const arma::fvec &spectra_waves, const arma::uvec &spectra_labels, arma::umat &indices)
svm() takes an input data structure and a list of spectra and classifies each pixel as one of the giv...
Definition: processing.cpp:720
arma::fmat band_maths(std::vector< const arma::fcube * > images, std::string expression)
Definition: processing.cpp:1196
arma::fcube spectral_derivative(const arma::fcube &I, const arma::fvec &wavelengths)
Definition: processing.cpp:907
void sam(const arma::fcube &I, const arma::fvec &wavelengths, const arma::fmat &spectra, const arma::fvec &spectra_waves, arma::fcube &angles, arma::ucube &indices, int num_materials=5)
sam() takes an input data structure and a list of spectra and calculates angles for each pixel to eac...
Definition: processing.cpp:503
void pca(const arma::fcube &I, arma::fcube &principal_components, arma::fvec &eigenvalues, int num_components=10, float threshold=0.001)
Definition: processing.cpp:365
void unmix_by_spectra(const arma::fcube &I, const arma::fvec &wavelengths, const arma::fmat &spectra, const arma::fvec &spectra_waves, arma::fcube &abundances, arma::ucube &indices, int num_materials=5)
unmix_by_spectra() takes an input data structure and a list of spectra and calculates abundances for ...
Definition: processing.cpp:115