Commit ced7c8fa authored by Daniel McInerney's avatar Daniel McInerney

DOC: further suggested changes to the documentation

parent b4f8a25e
Recipes
=======
This chapter presents guidelines to perform various remote sensing and
image processing tasks with either , or both. Its goal is not to be
This chapter presents guidelines to perform various remote sensing and/or
image processing tasks. Its goal is not to be
exhaustive, but rather to familiarise users with the OTB package functionality
and demonstrate how the can be applied.
and demonstrate how they can be applied.
.. toctree::
:maxdepth: 6
......
......@@ -9,7 +9,7 @@ In the ``otbApplication`` module, two main classes can be manipulated :
- ``Registry``, which provides access to the list of available
applications, and can create applications.
- ``Application``, the base class for all applications. This allows to
- ``Application``, the base class for all applications. This allows one to
interact with an application instance created by the ``Registry``.
Here is one example of how to use Python to run the ``Smoothing``
......@@ -69,7 +69,7 @@ Numpy array processing
----------------------
Input and output images to any OTB application in the form of NumPy array is now possible in OTB Python wrapping.
The Python wrapping only exposes OTB Application engine module (called *ApplicationEngine*) which allows to access existing C++ applications.
The Python wrapping only exposes OTB Application engine module (called *ApplicationEngine*) which allows one to access existing C++ applications.
Due to blissful nature of ApplicationEngine's loading mechanism no specific wrapping is required for each application.
NumPy extension to Python wrapping allows data exchange to application as an array rather than a disk file.
......
......@@ -78,11 +78,11 @@ The produced images were then rescaled to intensities ranging from 0 to
Polarimetry
-----------
In conventional imaging radar the measurement is a scalar which is
In conventional imaging radar, the measurement is a scalar which is
proportional to the received back-scattered power at a particular
combination of linear polarization (HH, HV, VH or VV). Polarimetry is
the measurement and interpretation of the polarization of this
measurement which allows to measure various optical properties of a
measurement. It allows for the measurement of various optical properties of a
material. In polarimetry the basic measurement is a :math:`2x2` complex
scattering matrix yielding an eight dimensional measurement space
(Sinclair matrix). For reciprocal targets where :math:`HV=VH`, this
......
......@@ -30,15 +30,15 @@
// In this example, we present a system that places measurement vectors into
// two Gaussian classes. The Figure~\ref{fig:BayesianPluginClassifier} shows
// all the components of the classifier system and the data flow. This system
// differs with the previous k-means clustering algorithms in several
// differs from the previous k-means clustering algorithms in several
// ways. The biggest difference is that this classifier uses the
// \subdoxygen{itk}{Statistics}{GaussianMembershipFunction} as membership functions
// instead of the \subdoxygen{itk}{Statistics}{EuclideanDistanceMetric}. Since the
// membership function is different, the membership function requires a
// membership function is different, it requires a
// different set of parameters, mean vectors and covariance matrices. We
// choose the \subdoxygen{itk}{Statistics}{MeanSampleFilter} (sample mean) and the
// \subdoxygen{itk}{Statistics}{CovarianceSampleFilter} (sample covariance) for the
// estimation algorithms of the two parameters. If we want more robust
// estimation algorithms of the two parameters. If we want more a robust
// estimation algorithm, we can replace these estimation algorithms with more
// alternatives without changing other components in the classifier system.
//
......@@ -69,7 +69,7 @@
// Software Guide : BeginLatex
//
// The following two files provides us the parameter estimation algorithms.
// The following two files provides us with the parameter estimation algorithms.
//
// Software Guide : EndLatex
......@@ -95,7 +95,7 @@
// Software Guide : BeginLatex
//
// We will fill the sample with random variables from two normal
// distribution using the \subdoxygen{itk}{Statistics}{NormalVariateGenerator}.
// distributions using the \subdoxygen{itk}{Statistics}{NormalVariateGenerator}.
//
// Software Guide : EndLatex
......@@ -142,9 +142,9 @@ int main(int, char *[])
// The following code snippet creates a NormalVariateGenerator
// object. Since the random variable generator returns values according to
// the standard normal distribution (the mean is zero, and the standard
// deviation is one) before pushing random values into the \code{sample},
// we change the mean and standard deviation. We want two normal (Gaussian)
// distribution data. We have two for loops. Each for loop uses different
// deviation is one), before pushing random values into the \code{sample},
// we change the mean and standard deviation. We need two normally (Gaussian)
// distributed datasets. We have two for loops, within which each uses a different
// mean and standard deviation. Before we fill the \code{sample} with the
// second distribution data, we call \code{Initialize(random seed)} method,
// to recreate the pool of random variables in the
......@@ -190,7 +190,7 @@ int main(int, char *[])
//
// In the following code snippet, notice that the template argument for the
// MeanSampleFilter and CovarianceFilter is \code{ClassSampleType} (i.e.,
// type of Subsample) instead of SampleType (i.e., type of ListSample). This
// type of Subsample) instead of SampleType (i.e. type of ListSample). This
// is because the parameter estimation algorithms are applied to the class
// sample.
//
......@@ -238,8 +238,8 @@ int main(int, char *[])
//
// After creating a SampleClassifierFilter object and a
// MaximumRatioDecisionRule object, we plug in the
// \code{decisionRule} and the \code{sample} to the classifier. Then,
// we specify the number of classes that will be considered using
// \code{decisionRule} and the \code{sample} to the classifier. We
// then specify the number of classes that will be considered using
// the \code{SetNumberOfClasses()} method.
//
// The MaximumRatioDecisionRule requires a vector of \emph{a
......@@ -304,7 +304,7 @@ int main(int, char *[])
// Euclidean distance functions. The distance function (model) has only one
// parameter, the mean (centroid) set by the \code{SetOrigin()} method. To
// plug-in two distance functions, we call the
// \code{AddMembershipFunction()} method. Then invocation of the
// \code{AddMembershipFunction()} method. Finally, the invocation of the
// \code{Update()} method will perform the classification.
//
// Software Guide : EndLatex
......
......@@ -23,11 +23,11 @@
//
// After having generated a classification map, it is possible to
// regularize such a labeled image in order to obtain more homogeneous
// areas, which makes the interpretation of its classes easier. For this
// areas, which facilitates its interpretation. For this
// purpose, the \doxygen{otb}{NeighborhoodMajorityVotingImageFilter} was
// implemented. Like a morphological filter, this filter uses majority
// voting in a ball shaped neighborhood in order to set each pixel of the
// classification map to the more representative label value in its
// classification map to the most representative label value in its
// neighborhood.
//
// In this example we will illustrate its use. We start by including the
......@@ -78,7 +78,7 @@ int main(int itkNotUsed(argc), char * argv[])
// Software Guide : BeginLatex
//
// We can now define the type for the neighborhood majority voting filter,
// which is templated over its input and output images types and over its
// which is templated over its input and output images types as well as its
// structuring element type. Choosing only the input image type in the template
// of this filter induces that, both input and output images types are the same
// and that the structuring element is a ball
......@@ -196,9 +196,9 @@ int main(int itkNotUsed(argc), char * argv[])
// Software Guide : BeginLatex
//
// Moreover, since the majority voting regularization may lead to not unique
// majority labels in the neighborhood, it is important to define which behaviour
// the filter must have in this case. For this purpose, a Boolean parameter is used
// Furthermore, since the majority voting regularization may lead to different
// majority labels in the neighborhood, in this case, it would be important to define
// the filter's behaviour. For this purpose, a Boolean parameter is used
// in the filter to choose whether pixels with more than one majority class are set
// to undecidedValue (true), or to their Original labels (false = default value)
// in the output image.
......
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