Commit d85fb29b authored by Julien Michel's avatar Julien Michel

DOC: Enhancing documentation of the Dimension Reduction chapter

parent cdc24265
...@@ -31,10 +31,15 @@ ...@@ -31,10 +31,15 @@
// //
// This example illustrates the use of the // This example illustrates the use of the
// \doxygen{otb}{FastICAImageFilter}. // \doxygen{otb}{FastICAImageFilter}.
// This filter computes a Principal Component Analysis using an // This filter computes a Fast Independant Components Analysis transform.
// efficient method based on the inner product in order to compute the
// covariance matrix.
// //
// Like Principal Components Analysis, FastICA computes a set of
// orthogonal linear combinations, but the criterion of Fast ICA is
// different: instead of maximizing variance, it tries to maximize
// stastistical independance between components. In Fast ICA,
// statistical independance is mesured by evaluating non-Gaussianity
// of the components, and the maximization is done in an iterative way.
// The first step required to use this filter is to include its header file. // The first step required to use this filter is to include its header file.
// //
// Software Guide : EndLatex // Software Guide : EndLatex
...@@ -144,7 +149,7 @@ int main(int argc, char* argv[]) ...@@ -144,7 +149,7 @@ int main(int argc, char* argv[])
// Software Guide : EndCodeSnippet // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// We finally plug the pipeline and trigger the PCA computation with // We finally plug the pipeline and trigger the ICA computation with
// the method \code{Update()} of the writer. // the method \code{Update()} of the writer.
// //
// Software Guide : EndLatex // Software Guide : EndLatex
...@@ -159,7 +164,7 @@ int main(int argc, char* argv[]) ...@@ -159,7 +164,7 @@ int main(int argc, char* argv[])
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// \doxygen{otb}{FastICAImageFilter} allows also to compute inverse // \doxygen{otb}{FastICAImageFilter} allows also to compute inverse
// transformation from PCA coefficients. In reverse mode, the // transformation from ICA coefficients. In reverse mode, the
// covariance matrix or the transformation matrix // covariance matrix or the transformation matrix
// (which may not be square) has to be given. // (which may not be square) has to be given.
// //
...@@ -173,7 +178,8 @@ int main(int argc, char* argv[]) ...@@ -173,7 +178,8 @@ int main(int argc, char* argv[])
invFilter->SetMeanValues( FastICAfilter->GetMeanValues() ); invFilter->SetMeanValues( FastICAfilter->GetMeanValues() );
invFilter->SetStdDevValues( FastICAfilter->GetStdDevValues() ); invFilter->SetStdDevValues( FastICAfilter->GetStdDevValues() );
invFilter->SetTransformationMatrix( FastICAfilter->GetTransformationMatrix() ); invFilter->SetTransformationMatrix( FastICAfilter->GetTransformationMatrix() );
invFilter->SetPCATransformationMatrix( FastICAfilter->GetPCATransformationMatrix() ); invFilter->SetPCATransformationMatrix(
FastICAfilter->GetPCATransformationMatrix() );
invFilter->SetInput(FastICAfilter->GetOutput()); invFilter->SetInput(FastICAfilter->GetOutput());
WriterType::Pointer invWriter = WriterType::New(); WriterType::Pointer invWriter = WriterType::New();
......
...@@ -30,11 +30,22 @@ ...@@ -30,11 +30,22 @@
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// This example illustrates the use of the // This example illustrates the use of the
// \doxygen{otb}{MNFImageFilter}. // \doxygen{otb}{MNFImageFilter}. This filter computes a Minimum
// This filter computes a Principal Component Analysis using an // Noise Fraction transform \cite{nielsen2011kernel} using an
// efficient method based on the inner product in order to compute the // efficient method based on the inner product in order to compute the
// covariance matrix. // covariance matrix.
// //
// The Minimum Noise Fraction transform is a sequence of two Principal
// Components Analysis transform. The first transform is based on an
// estimated covariance matrix of the noise, and intends to whiten the
// input image (noise with unit variance and no correlation between
// bands).
//
// The second Principal Components Analysis is then applied to the
// noise-whitened image, giving the Minimum Noise Fraction transform.
//
// In this implementation, noise is estimated from a local window.
//
// The first step required to use this filter is to include its header file. // The first step required to use this filter is to include its header file.
// //
// Software Guide : EndLatex // Software Guide : EndLatex
...@@ -100,7 +111,7 @@ int main(int argc, char* argv[]) ...@@ -100,7 +111,7 @@ int main(int argc, char* argv[])
// Software Guide : EndLatex // Software Guide : EndLatex
// SoftwareGuide : BeginCodeSnippet // SoftwareGuide : BeginCodeSnippet
typedef otb::LocalActivityVectorImageFilter< ImageType, ImageType > NoiseFilterType; typedef otb::LocalActivityVectorImageFilter<ImageType,ImageType> NoiseFilterType;
// SoftwareGuide : EndCodeSnippet // SoftwareGuide : EndCodeSnippet
...@@ -167,7 +178,7 @@ int main(int argc, char* argv[]) ...@@ -167,7 +178,7 @@ int main(int argc, char* argv[])
// Software Guide : EndCodeSnippet // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// We finally plug the pipeline and trigger the PCA computation with // We finally plug the pipeline and trigger the MNF computation with
// the method \code{Update()} of the writer. // the method \code{Update()} of the writer.
// //
// Software Guide : EndLatex // Software Guide : EndLatex
...@@ -182,7 +193,7 @@ int main(int argc, char* argv[]) ...@@ -182,7 +193,7 @@ int main(int argc, char* argv[])
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// \doxygen{otb}{MNFImageFilter} allows also to compute inverse // \doxygen{otb}{MNFImageFilter} allows also to compute inverse
// transformation from PCA coefficients. In reverse mode, the // transformation from MNF coefficients. In reverse mode, the
// covariance matrix or the transformation matrix // covariance matrix or the transformation matrix
// (which may not be square) has to be given. // (which may not be square) has to be given.
// //
......
...@@ -28,7 +28,16 @@ ...@@ -28,7 +28,16 @@
// Software Guide : BeginLatex // Software Guide : BeginLatex
// This example illustrates the class // This example illustrates the class
// \doxygen{otb}{MaximumAutocorrelationFactorImageFilter} ... // \doxygen{otb}{MaximumAutocorrelationFactorImageFilter}, which
// performs a Maximum Autocorrelation Factor transform \cite{nielsen2011kernel}. Like
// PCA, MAF tries to find a set of orthogonal linear transform, but
// the criterion to maximize is the auto-correlation rather than the
// variance.
//
// Auto-correlation is the correlation between the component and a
// unitary shifted version of the component.
//
// Please note that the inverse transform is not implemented yet.
// //
// We start by including the corresponding header file. // We start by including the corresponding header file.
// //
......
...@@ -100,7 +100,7 @@ int main(int argc, char* argv[]) ...@@ -100,7 +100,7 @@ int main(int argc, char* argv[])
// Software Guide : EndLatex // Software Guide : EndLatex
// SoftwareGuide : BeginCodeSnippet // SoftwareGuide : BeginCodeSnippet
typedef otb::LocalActivityVectorImageFilter< ImageType, ImageType > NoiseFilterType; typedef otb::LocalActivityVectorImageFilter<ImageType,ImageType> NoiseFilterType;
// SoftwareGuide : EndCodeSnippet // SoftwareGuide : EndCodeSnippet
...@@ -167,7 +167,7 @@ int main(int argc, char* argv[]) ...@@ -167,7 +167,7 @@ int main(int argc, char* argv[])
// Software Guide : EndCodeSnippet // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// We finally plug the pipeline and trigger the PCA computation with // We finally plug the pipeline and trigger the NA-PCA computation with
// the method \code{Update()} of the writer. // the method \code{Update()} of the writer.
// //
// Software Guide : EndLatex // Software Guide : EndLatex
...@@ -182,7 +182,7 @@ int main(int argc, char* argv[]) ...@@ -182,7 +182,7 @@ int main(int argc, char* argv[])
// Software Guide : BeginLatex // Software Guide : BeginLatex
// //
// \doxygen{otb}{NAPCAImageFilter} allows also to compute inverse // \doxygen{otb}{NAPCAImageFilter} allows also to compute inverse
// transformation from PCA coefficients. In reverse mode, the // transformation from NA-PCA coefficients. In reverse mode, the
// covariance matrix or the transformation matrix // covariance matrix or the transformation matrix
// (which may not be square) has to be given. // (which may not be square) has to be given.
// //
...@@ -209,7 +209,7 @@ int main(int argc, char* argv[]) ...@@ -209,7 +209,7 @@ int main(int argc, char* argv[])
// Software Guide : BeginLatex // Software Guide : BeginLatex
// Figure~\ref{fig:NAPCA_FILTER} shows the result of applying forward // Figure~\ref{fig:NAPCA_FILTER} shows the result of applying forward
// and reverse NAPCA transformation to a 8 bands Wordlview2 image. // and reverse NA-PCA transformation to a 8 bands Wordlview2 image.
// \begin{figure} // \begin{figure}
// \center // \center
// \includegraphics[width=0.32\textwidth]{napca-input-pretty.eps} // \includegraphics[width=0.32\textwidth]{napca-input-pretty.eps}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment