#LyX 1.6.7 created this file. For more info see http://www.lyx.org/
\lyxformat 345
\begin_document
\begin_header
\textclass paper
\use_default_options true
\begin_modules
theorems-ams
theorems-ams-extended
eqs-within-sections
figs-within-sections
\end_modules
\language english
\inputencoding auto
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100

\graphics default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_amsmath 1
\use_esint 1
\cite_engine natbib_authoryear
\use_bibtopic false
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\author "" 
\author "" 
\end_header

\begin_body

\begin_layout Title
Endmember Induction Algorithms (EIA) toolbox for MATLAB and SCILAB
\end_layout

\begin_layout SubTitle
Version 0.1
\end_layout

\begin_layout Author
Miguel Angel Veganzones
\begin_inset Foot
status open

\begin_layout Plain Layout
\begin_inset CommandInset href
LatexCommand href
name "miguelangel.veganzones@ehu.es"
target "miguelangel.veganzones@ehu.es"
type "mailto:"

\end_inset


\end_layout

\end_inset

, Prof.
 Manuel Graña
\begin_inset Foot
status open

\begin_layout Plain Layout
\begin_inset CommandInset href
LatexCommand href
name "manuel.grana@ehu.es"
target "manuel.grana@ehu.es"
type "mailto:"

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Institution
Grupo de Inteligencia Computacional
\begin_inset Foot
status collapsed

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.ehu.es/computationalintelligence
\end_layout

\end_inset


\end_layout

\end_inset

, Universidad del País Vasco, Spain
\end_layout

\begin_layout Abstract
This document is intended to be the reference manual for the Endmember Induction
 Algorithms (EIA) toolbox.
 It includes how to download the sources and install the toolbox in Scilab
 and Matlab, as well as how to use the functions provided in the toolbox.
 Each function is explained with examples.
 This manual is not intended to be a review on Endmember Induction Algorithms.
\end_layout

\begin_layout Section
Copyright
\end_layout

\begin_layout Standard
Endmember Induction Algorithms (EIA) toolbox is copyright (C) of the Grupo
 de Inteligencia Computacional, Universidad del País Vasco (UPV/EHU), Spain
 released under the terms of the GNU General Public License.
 
\end_layout

\begin_layout Standard
Endmember Induction Algorithms (EIA) toolboxis free software: you can redistribu
te it and/or modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation, either version 3 of the License,
 or (at your option) any later version.
 
\end_layout

\begin_layout Standard
Endmember Induction Algorithms (EIA) toolbox is distributed in the hope
 that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
 You should have received a copy of the GNU General Public License along
 with Lattice Algebra Toolbox.
 If not, see <http://www.gnu.org/licenses/>.
\end_layout

\begin_layout Section
Install
\end_layout

\begin_layout Standard
Endmember Induction Algorithms (EIA) toolbox works over Matlab
\begin_inset Foot
status collapsed

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.mathworks.com/products/matlab/
\end_layout

\end_inset


\end_layout

\end_inset

 and Scilab
\begin_inset Foot
status open

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.scilab.org/
\end_layout

\end_inset


\end_layout

\end_inset

, which are numerical computation software.
 Before using EIA toolbox, you'll need to install matlab or Scilab in your
 computer.
 Matlab is a comercial software and a license is required.
 Scilab is free and easy to install, and runs in Linux, Windows and MacOsX
 platforms.
 It is convenient to install the latest stable version available for your
 platform.
 At this moment, latest versions are Matlab R2011a and Scilab 5.3.0.
\end_layout

\begin_layout Standard
The code can be downloaded from the Computational Intelligence group website
\begin_inset Foot
status open

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.ehu.es/ccwintco/index.php/GIC-source-code-free-libre
\end_layout

\end_inset


\end_layout

\end_inset

.
 You can find the EIA toolbox in the Endmember Induction Algorithm section.
 There, you can download a single package with all the sources and aditional
 files, or you can download each method by its own (note that some methods
 require aditional functions).
\end_layout

\begin_layout Subsection
EIA Toolbox install in Matlab
\end_layout

\begin_layout Standard
No installation is required to use EIA toolbox in Matlab.
 It is recommended to add the EIA toolbox path to the Matlab search path
 so you don't have to launch EIA toolbox methods from the EIA toolbox directory.
 To add the path just do 
\begin_inset Quotes eld
\end_inset

File > Set path
\begin_inset Quotes erd
\end_inset

, and the 'Set path' window will appear (Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Matlab's-'Set-path'"

\end_inset

).
 Press the 'Add with Subfolders' button and select the EIA toolbox directory.
 Accept and the EIA toolbox path will be available from now on.
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/setpath.png
	lyxscale 20
	width 100text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:Matlab's-'Set-path'"

\end_inset

Matlab's 'Set path' window.
\end_layout

\end_inset


\end_layout

\begin_layout Plain Layout

\end_layout

\end_inset


\end_layout

\begin_layout Subsection
EIA Toolbox install in Scilab
\end_layout

\begin_layout Section
Usage
\end_layout

\begin_layout Standard
Using EIA toolbox is quite easy, and there are not significant differences
 between Matlab and Scilab platforms.
 There are two ways to use Endmember Induction Algorithms incorpored in
 the EIA toolbox, by directly using the algorithm, which requires to adequately
 format the data, or by using the data format-based launchers, which are
 specifically implemented to fit data spatial dimensionality and encapsulate
 all the available algorithms.
\end_layout

\begin_layout Subsection
Use of 1D, 2D and 3D launchers
\end_layout

\begin_layout Standard
The data to be analyzed by the Endmember Induction Algorithms must be stored
 in a matrix corresponding the first dimension of the matrix to the spectral
 variables and, next dimensions to the spatial locations.
 This way, a collection of images, where each image 
\begin_inset Formula $I_{j}$
\end_inset

 is represented by a feature vector 
\begin_inset Formula $\mathbf{x}_{j}$
\end_inset

, is stored in a two dimensional matrix 
\begin_inset Formula $X=\left\{ x_{ij}\right\} $
\end_inset

; 
\begin_inset Formula $i=1,\ldots,P$
\end_inset

; 
\begin_inset Formula $j=1,\ldots N$
\end_inset

; where 
\begin_inset Formula $N$
\end_inset

 is the number of sample images in the collection and 
\begin_inset Formula $P$
\end_inset

 is the feature vector's number of components.
 The matrix 
\begin_inset Formula $X$
\end_inset

 first dimension corresponds to the spectral variables and the second dimension
 to the spatial location.
 This is a 1D-data because there is only one spatial dimension.
 Following, an example of 1D, 2D and 3D-data analysis by EIAs is given.
\end_layout

\begin_layout Standard
In the 'Data' folder of the EIA toolbox there are a Matlab and a Scilab
 data files named 'sample_data.mat' and 'sample_data.dat' respectively.
 Both files contain three matrices, each corresponding to an example of
 1D, 2D and 3D-data.
 
\end_layout

\begin_layout Subsubsection
EIA_1D use example
\end_layout

\begin_layout Standard
The variable named 'faces' which is a 
\begin_inset Formula $10304\times400$
\end_inset

 matrix is an example of 1D-data.
 'Faces' is a collection of 400 faces, where each face is represented as
 a 10304 components feature vector
\begin_inset Foot
status open

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html
\end_layout

\end_inset


\end_layout

\end_inset

.
 Each feature vector has been extracted by reshaping the original gray-scale
 face images which are of size 
\begin_inset Formula $112\times92$
\end_inset

 pixels.
 Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Face"

\end_inset

 shows the original image of the first face of the collection.
 The code used to obtain the image is:
\end_layout

\begin_layout Algorithm
face = faces(:,1);
\end_layout

\begin_layout Algorithm
face = reshape(face,112,92);
\end_layout

\begin_layout Algorithm
imshow(face,[0 255]);
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/face.eps
	lyxscale 20
	width 50text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:Face"

\end_inset

Image of the first face of the faces collection.
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
Now, you can use the EIA_1D launcher to analyze this data using the default
 options (which will run the ILSIA algorithm):
\end_layout

\begin_layout Algorithm
[E,C] = EIA_1D(faces);
\end_layout

\begin_layout Standard
The results are stored in the two variables 'E' and 'C'.
 'E' stores the induced endmembers and 'C' stores the spatial coordinates
 of the data samples correponding to the endmembers.
 Some EIAs do not select some samples as endmembers, and thus, variable
 'C' will be empty.
 In this case, the endmembers induced by the EIA_1D method used above returns
 the most 'extreme' faces in the database.
 Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:EIA_1D-default"

\end_inset

 shows the faces (endmembers) returned by the ILSIA algorithm (the default
 one).
 The code is:
\end_layout

\begin_layout Algorithm
k=size(E,2);
\end_layout

\begin_layout Algorithm
selected_faces = reshape(E,112,92,k);
\end_layout

\begin_layout Algorithm
for i=1:k
\end_layout

\begin_layout Algorithm
figure;imshow(selected_faces(:,:,i),[0 255]);
\end_layout

\begin_layout Algorithm
end
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/EIA_1D-default-face1.eps
	lyxscale 20
	width 50text%

\end_inset


\begin_inset Graphics
	filename images/EIA_1D-default-face2.eps
	lyxscale 20
	width 50text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:EIA_1D-default"

\end_inset

Extreme faces selected by the ILSIA (default) algorithm, obtained by reshaping
 the induced endmembers.
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
If you want to use an specific EIA you can select it adding a second parameter
 to the call.
 lets see and example running the N-FINDR algorithm:
\end_layout

\begin_layout Algorithm
[E,C] = EIA_1D(faces,'NFINDR');
\end_layout

\begin_layout Standard
This will run the N-FINDR algorithm using its default options.
 The possible algorithms and options for each algorithm are described in
 the EIA_1D method (as well as EIA_2D and EIA_3D) help documentation.
 If you want to tune up the algorithm options you can do it adding additional
 parameters to the call:
\end_layout

\begin_layout Algorithm
[E,C] = EIA_1D(faces,'NFINDR','p',4,'maxit',100);
\end_layout

\begin_layout Standard
Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:EIA_1D-NFINDR"

\end_inset

 shows the faces (endmembers) returned by the N-FINDR algorithm with p=4
 and maxit=100.
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/EIA_1D-nfindr-face1.eps
	lyxscale 20
	width 50text%

\end_inset


\begin_inset Graphics
	filename images/EIA_1D-nfindr-face2.eps
	lyxscale 20
	width 50text%

\end_inset


\end_layout

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/EIA_1D-nfindr-face3.eps
	lyxscale 20
	width 50text%

\end_inset


\begin_inset Graphics
	filename images/EIA_1D-nfindr-face4.eps
	lyxscale 20
	width 50text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:EIA_1D-NFINDR"

\end_inset

Extreme faces selected by the N-FINDR algorithm with p=4 and maxit=100,
 obtained by reshaping the induced endmembers.
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Subsubsection
EIA_2D use example
\end_layout

\begin_layout Standard
Common images are an example of data with two spatial dimensions.
 The 'hyper' variable contains an hyperspectral image corresponding to the
 well-known Indian Pines scene
\begin_inset Foot
status collapsed

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

https://engineering.purdue.edu/~biehl/MultiSpec/hyperspectral.html
\end_layout

\end_inset


\end_layout

\end_inset

.
 It has 220 spectral bands and it is 145x145 pixels sized (spatial dimensionalit
ies).
 Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:hyper"

\end_inset

 shows band 170 of the hyperspectral scene.
 The code is:
\end_layout

\begin_layout Algorithm
imagesc(squeeze(hyper(170,:,:)));
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/hyper_band170.eps
	lyxscale 20
	width 50text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:hyper"

\end_inset

Hyperspectral Indian Pines scene band 170.
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
EIA_2D method can be used to analyze this image data in the same way than
 the faces data:
\end_layout

\begin_layout Algorithm
[E,C] = EIA_2D(hyper);
\end_layout

\begin_layout Standard
The result of applying an EIA to the hyperspectral data is a set of endmembers,
 that is, the spectral response of the purest materials found in the image
 by the algorithm.
 Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:EIA_2D_E"

\end_inset

 shows the endmembers induced by the ILSIA algorithm (default options).
 The code is:
\end_layout

\begin_layout Algorithm
plot(E,'LineWidth',2);
\end_layout

\begin_layout Algorithm
xlim([1 220]);
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/hyper_EIA_2D_E.eps
	lyxscale 20
	width 80text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:EIA_2D_E"

\end_inset

Endmembers induced by EIA_2D (default options) from the hyperspectral scene.
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Subsubsection
EIA_3D use example
\end_layout

\begin_layout Standard
Same can be done for MRI images which is an example of data with 3 spatial
 dimensions.
 The 'fmri' matrix represents a simulated functional MRI image
\begin_inset Foot
status collapsed

\begin_layout Plain Layout
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://mlsp.umbc.edu/simulated_fmri_data.html
\end_layout

\end_inset


\end_layout

\end_inset

.
 The image is a time serie of 100 instances of a simulated functional MRI
 cube of 
\begin_inset Formula $60\times60\times60$
\end_inset

 voxels.
 Thus, EIA_3D can be used:
\end_layout

\begin_layout Algorithm
[E,C] = EIA_3D(fmri);
\end_layout

\begin_layout Standard
Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:EIA_3D_E"

\end_inset

 shows the endmembers induced by ILSIA algorithm.
\end_layout

\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
	filename images/fmri_EIA_3D_E.eps
	lyxscale 20
	width 80text%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:EIA_3D_E"

\end_inset

Endmembers induced by EIA_3D (default options) from the simulated functional
 MRI image.
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Use of individual algorithms
\end_layout

\begin_layout Standard
In the previous section we explained how to use the spatial-based EIA launchers.
 Here we are going to explain how to use the individual methods.
 All the methods have a similar call:
\end_layout

\begin_layout Algorithm
[E,C] = EIA_algorithm(data,options);
\end_layout

\begin_layout Standard
We already explained that 'E' and 'C' stores the induced endmembers and
 pixels-endmembers coordenates respectively.
 'algorithm' can be replaced by any of the implemented Endmember Induction
 Algorithms, for instance: EIA_ILSIA or EIA_NFINDR.
 The 'data' variable contains the data to be analyzed by the EIA and 'options'
 can be different parameters depending on the selected EIA.
 To use an EIA method you have first to format the data adequately.
 All the methods data input is a 2 dimensional matrix where first dimension
 represents the data variables and second dimension the samples.
 That is, 'data' is a matrix 
\begin_inset Formula $P\times N$
\end_inset

, being 
\begin_inset Formula $P$
\end_inset

 the number of variables and 
\begin_inset Formula $N$
\end_inset

 the number of samples.
 Lets see how to format the three sample data included in the toolbox.
\end_layout

\begin_layout Standard
In the case of the faces data, the 'faces' variable is already a 
\begin_inset Formula $P\times N$
\end_inset

 matrix, so it don't need to be formatted.
 
\end_layout

\begin_layout Standard
The hyperspectral scene in the 'hyper' variable is a 
\begin_inset Formula $P\times m\times n$
\end_inset

 matrix, where 
\begin_inset Formula $m$
\end_inset

 and 
\begin_inset Formula $n$
\end_inset

 are the spatial locations of the pixels.
 We can reshape the matrix to fix the data format needed by the EIA methods
 as follows:
\end_layout

\begin_layout Algorithm
[P m n] = size(hyper);
\end_layout

\begin_layout Algorithm
data = reshape(hyper,P,m*n);
\end_layout

\begin_layout Standard
For the MRI image is almost the same:
\end_layout

\begin_layout Algorithm
[P m n o] = size(fmri);
\end_layout

\begin_layout Algorithm
data = reshape(fmri,P,m*n*o);
\end_layout

\begin_layout Standard
Once you have the data formatted you can call to the desired EIA method.
 Some examples:
\end_layout

\begin_layout Algorithm
[E,C] = EIA_ILSIA(data);
\end_layout

\begin_layout Algorithm
[E,C] = EIA_ILSIA(data,2);
\end_layout

\begin_layout Algorithm
[E,C] = EIA_NFINDR(data,5,100);
\end_layout

\begin_layout Standard
The available options for the different algorithms can be found in the methods
 code documentation and in the Methods Reference scetion below.
\end_layout

\begin_layout Section
Methods reference
\end_layout

\begin_layout Subsection
EIA_1D
\end_layout

\begin_layout Standard
[E,C] = EIA_1D(data,algorithm,varargin)
\end_layout

\begin_layout Standard
Endmembers induction algorithms for 1-spatial dimensionality data.
 1-spatial data is defined as a matrix where first dimension represents
 the spectral information and, second dimension is the spatial.
 Examples of 1-spatial data are contingency matrix where each sample (spatial
 dimensionality) is an N-dimensional feature vector (spectral dimensionality).
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_layout Itemize
algorithm : EIA to be used.
 It can be one of this: {'ILSIA'(default)|'EIHA'|'WM'|'NFINDR'|'FIPPI'|'ATGP'}
\end_layout

\begin_layout Itemize
varargin : options to be passed to the algorithm (see below).
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Standard
Now, a description of the algorithms is offered together to the options
 that can be passed as parameters:
\end_layout

\begin_layout Itemize
ILSIA: Incremental lattice Source Induction Algorithm (ILSIA) endmembers
 induction algorithm.
 Options: 
\end_layout

\begin_deeper
\begin_layout Itemize
'alpha': Chebyshev-best approximation tolerance threshold (>= 0).
 Default = 0.
\end_layout

\end_deeper
\begin_layout Itemize
EIHA: Endmember induction heuristic algorithm (EIHA) endmembers induction
 algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'alpha': perturbation tolerance.
 Default = 2.
\end_layout

\end_deeper
\begin_layout Itemize
WM: Prof.
 Ritter's WM endmembers induction algorithm.
 Options: none.
\end_layout

\begin_layout Itemize
NFINDR: N-FINDR endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
'maxit': maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
FIPPI: Fast Iterative Pixel Purity Index (FIPPI) endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
'maxit': maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
ATGP: ATGP endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\end_deeper
\begin_layout Subsection
EIA_2D
\end_layout

\begin_layout Standard
[E,C] = EIA_1D(data,algorithm,varargin)
\end_layout

\begin_layout Standard
Endmembers induction algorithms for 2-spatial dimensionality data.
 2-spatial data is defined as a cube where first dimension represents the
 spectral information and, second and third dimensions are the spatial ones.
 Examples of 2-spatial data are images where each pixel (spatial dimensionality)
 is an N-dimensional feature vector (spectral dimensionality).
 For binaries or grey-scale images N=1.
 For RGB images N=3.
 For hyperspectral images N is high.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nrows x ncolumns]
\end_layout

\begin_layout Itemize
algorithm : EIA to be used.
 It can be one of this: {'ILSIA'(default)|'EIHA'|'WM'|'NFINDR'|'FIPPI'|'ATGP'}
\end_layout

\begin_layout Itemize
varargin : options to be passed to the algorithm (see below).
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Standard
Now, a description of the algorithms is offered together to the options
 that can be passed as parameters:
\end_layout

\begin_layout Itemize
ILSIA: Incremental lattice Source Induction Algorithm (ILSIA) endmembers
 induction algorithm.
 Options: 
\end_layout

\begin_deeper
\begin_layout Itemize
'alpha': Chebyshev-best approximation tolerance threshold (>= 0).
 Default = 0.
\end_layout

\end_deeper
\begin_layout Itemize
EIHA: Endmember induction heuristic algorithm (EIHA) endmembers induction
 algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'alpha': perturbation tolerance.
 Default = 2.
\end_layout

\end_deeper
\begin_layout Itemize
WM: Prof.
 Ritter's WM endmembers induction algorithm.
 Options: none.
\end_layout

\begin_layout Itemize
NFINDR: N-FINDR endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
'maxit': maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
FIPPI: Fast Iterative Pixel Purity Index (FIPPI) endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
'maxit': maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
ATGP: ATGP endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\end_deeper
\begin_layout Subsection
EIA_3D
\end_layout

\begin_layout Standard
[E,C] = EIA_1D(data,algorithm,varargin)
\end_layout

\begin_layout Standard
Endmembers induction algorithms for 1-spatial dimensionality data.
 3-spatial data is defined as an hypercube where first dimension represents
 the spectral information and, second, third and fourth dimensions are the
 spatial ones.
 Examples of 3-spatial data are hyperspectral MRI images where each voxel
 (spatial dimensionality) is an N-dimensional feature vector (spectral dimension
ality).
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x voxel_dim1 x voxel_dim2 x voxel_dim3]
\end_layout

\begin_layout Itemize
algorithm : EIA to be used.
 It can be one of this: {'ILSIA'(default)|'EIHA'|'WM'|'NFINDR'|'FIPPI'|'ATGP'}
\end_layout

\begin_layout Itemize
varargin : options to be passed to the algorithm (see below).
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Standard
Now, a description of the algorithms is offered together to the options
 that can be passed as parameters:
\end_layout

\begin_layout Itemize
ILSIA: Incremental lattice Source Induction Algorithm (ILSIA) endmembers
 induction algorithm.
 Options: 
\end_layout

\begin_deeper
\begin_layout Itemize
'alpha': Chebyshev-best approximation tolerance threshold (>= 0).
 Default = 0.
\end_layout

\end_deeper
\begin_layout Itemize
EIHA: Endmember induction heuristic algorithm (EIHA) endmembers induction
 algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'alpha': perturbation tolerance.
 Default = 2.
\end_layout

\end_deeper
\begin_layout Itemize
WM: Prof.
 Ritter's WM endmembers induction algorithm.
 Options: none.
\end_layout

\begin_layout Itemize
NFINDR: N-FINDR endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
'maxit': maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
FIPPI: Fast Iterative Pixel Purity Index (FIPPI) endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
'maxit': maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
ATGP: ATGP endmembers induction algorithm.
 Options:
\end_layout

\begin_deeper
\begin_layout Itemize
'p': number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\end_deeper
\begin_layout Subsection
EIA_ATGP
\end_layout

\begin_layout Standard
[E,C] = EIA_ATGP(data,p)
\end_layout

\begin_layout Standard
ATGP endmembers induction algorithm 
\begin_inset CommandInset citation
LatexCommand citep
key "plaza_impact_2006"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_layout Itemize
p: number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_CCA
\end_layout

\begin_layout Standard
[E] = EIA_CCA(data,p,t)
\end_layout

\begin_layout Standard
Convex Cone Analysis (CCA) endmembers induction algorithm 
\begin_inset CommandInset citation
LatexCommand citep
key "ifarraguerri_a._multispectral_1999"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples].
\end_layout

\begin_layout Itemize
p: number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
t : tolerance for numerical errors.
 By default 10^(-6).
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : is empty.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_CHEBYSHEV
\end_layout

\begin_layout Standard
[d] = EIA_CHEBYSHEV(x,y)
\end_layout

\begin_layout Standard
Chebyshev distance between two vectors.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
x,y : two vectors of same dimensionality.
\end_layout

\end_deeper
\begin_layout Itemize
Output:
\end_layout

\begin_deeper
\begin_layout Itemize
d : Chebyshev distance.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_EIHA
\end_layout

\begin_layout Standard
[E,C] = EIA_EIHA(data,alpha)
\end_layout

\begin_layout Standard
Endmember induction heuristic algorithm (EIHA) endmembers induction algorithm
 
\begin_inset CommandInset citation
LatexCommand citep
key "grana_two_2009"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_layout Itemize
alpha: perturbation tolerance.
 Default = 2.
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_FIPPI
\end_layout

\begin_layout Standard
[E,C] = EIA_FIPPI(data,p,maxit)
\end_layout

\begin_layout Standard
Fast Iterative Pixel Purity Index (FIPPI) endmembers induction algorithm
 
\begin_inset CommandInset citation
LatexCommand citep
key "chang_c.-i._fast_2006"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_layout Itemize
p: number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
maxit: maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_HFC
\end_layout

\begin_layout Standard
[vd] = EIA_HFC(data,alfa)
\end_layout

\begin_layout Standard
Virtual dimensionality by HFC method 
\begin_inset CommandInset citation
LatexCommand citep
key "chang_c.-i._estimation_2004,chein-i_chang_linear_2010"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_layout Itemize
alfa: vector of false alarm probabilities [1 x p] (default: [10^(-3) 10^(-4)
 10^(-5)]).
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
vd: vector of virtual dimensionality values [1 x p].
\end_layout

\end_deeper
\begin_layout Subsection
EIA_ILSIA
\end_layout

\begin_layout Standard
[E,C] = EIA_ILSIA(data,alpha)
\end_layout

\begin_layout Standard
Incremental lattice Source Induction Algorithm (ILSIA) endmembers induction
 algorithm 
\begin_inset CommandInset citation
LatexCommand citep
key "grana_lattice_2011"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_layout Itemize
alpha: Chebyshev-best approximation tolerance threshold (>= 0).
 Default = 0.
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_LAM
\end_layout

\begin_layout Standard
[W,M] = EIA_LAM(X,Y)
\end_layout

\begin_layout Standard
The Lattice Associative Memories is a kind of associative memory working
 over lattice operations.
 If X=Y then W and M are Lattice AutoAssociative Memories (LAAM), otherwise
 they are Lattice HeteroAssociative Memories (LHAM) 
\begin_inset CommandInset citation
LatexCommand citep
key "ritter_g._x._morphological_1998,ritter_morphological_1999"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
X: input pattern matrix [nvariables x nsamples].
\end_layout

\begin_layout Itemize
Y: ouput pattern matrix [nvariables x nsamples]
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
W : dilative LAM [mvariables x nvariables].
\end_layout

\begin_layout Itemize
M : erosive LAM [mvariables x nvariables].
\end_layout

\end_deeper
\begin_layout Subsection
EIA_NFINDR
\end_layout

\begin_layout Standard
[E,C] = EIA_NFINDR(data,p,maxit)
\end_layout

\begin_layout Standard
N-FINDR endmembers induction algorithm 
\begin_inset CommandInset citation
LatexCommand citep
key "winter_m._e._n-findr:_1999"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\begin_deeper
\begin_layout Itemize
p: number of endmembers to be induced.
 If not provided it is calculated by HFC method with tol=10^(-5).
\end_layout

\begin_layout Itemize
maxit: maximum number of iterations.
 Default = 3*p.
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : induced endmembers indexes vector [nsamples] with {0,1} values, where
 '1' indicates that the corresponding sample has been identified as an endmember.
 Some of the algorithms do not select pixels as the endmembers and, in that
 case C is empty.
\end_layout

\end_deeper
\begin_layout Subsection
EIA_WM
\end_layout

\begin_layout Standard
[E,C] = EIA_WM(data)
\end_layout

\begin_layout Standard
Prof.
 Ritter's WM endmembers induction algorithm 
\begin_inset CommandInset citation
LatexCommand citep
key "ritter_lattice_2010"

\end_inset

.
\end_layout

\begin_layout Itemize
Input:
\end_layout

\begin_deeper
\begin_layout Itemize
data: column data matrix [nvariables x nsamples]
\end_layout

\end_deeper
\begin_layout Itemize
Output: 
\end_layout

\begin_deeper
\begin_layout Itemize
E : set of induced endmembers [nvariables x p]
\end_layout

\begin_layout Itemize
C : is empty.
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset CommandInset bibtex
LatexCommand bibtex
btprint "btPrintAll"
bibfiles "bibliography"
options "plain"

\end_inset


\end_layout

\end_body
\end_document
