PERF: improve performance of couple of methods of itk::QuadEdgeMesh

Change-Id: I40187974100967a54646075d55d85b4e46cb71f4
ENH: Creating templateless region splitter classes

The end goal of this topic is to consolidate code, enabling re-use,
and modularization to facilitate customization and experimentation
with different splitting algorithms for multi-threading, streaming and
IO.

Creating a new virtual ImageRegionSplitterBase class which does not
have a class template. This enables the same splitter to be used for
the multi-threading, the streaming image filter, and the IO
classes. Additionally, it allows for a global default splitter to use
used and shared.

The current default algorithm of splitting along the slowest dimension
is not implemented in the ImageRegionSplittingSlowDimension class.

There are some novel to ITK design patterns used here which should be
considered.

1) Using a templatedless class with templated function which
dispatches to a function which takes the dimension and arrays. This
allow for compiled functions to be reused.

2) Multiple inheritance is used, to add common static members which
access common data between all implemented instances of the class. That
is it can provide common data and methods for all instantiations
across template instantiations.

Add GetModified IVAR accessors to ImageRegion class.

Change-Id: Ia73a69a32cf5f543540809a466223f9456a9af06
ENH: Adding image region splitter for separable filtering

The recursive separable image filter splits along the dimension which
is the fastest non-active direction. This has been extracted into a
ImageRegionsSplitter class.

Adding wrapping support for new splitters.

Change-Id: Ice0fb13ac5641c0e85b74f4ce70aa83a84d71052
BUG: LabelGeometry cropped images with non-unit spacing incorrectly

The itkLabelGeometryImageFilter previously cropped object images
incorrectly when the input image had non-unit spacing.  This was
corrected by simply including spacing in the resampler.  This patch
also includes a rewritten test that is simpler and clearer.  The test
now includes image regression tests.  It also includes feature values
regression tests by writing and reading the features values as CSV
files.  It tests both 2D images and 3D volumes.

Change-Id: I6767489993b30c187ae41b3a6c904bc3dd68d67e
DOC: Fix misspelling in ObjectMorphologyImageFilter

Change-Id: Idc4220aa6b2ddfab6604d3f0842589ab441bdded
STYLE: Remove unnecessary function call in GDCMImageIO

Change-Id: I3f88df3caf545a6b0b2d73f100a16a75fa1ad100
STYLE: Remove calls to deprecated functionality from DICOM Examples / Tests

Change-Id: Id5fd2393bfaf5eedb95975d8df11e2324d5d1513
DOC: Modify JointHistogramMutualInformationImageToImageMetricv4 comments.

Author: dr.tim.allman@gmail.com
Corrected comment.

Change-Id: I9115ce0a3784319db2cc417a5537f9112490ab12
DOC: Modify JointHistogramMutualInformationImageToImageMetricv4 comments.

Author: dr.tim.allman@gmail.com
Incorrect class name in doxygen comment.

Change-Id: Iabc5a51acaadd9c3a1d8468e654c0c6a15666667
Merge topic 'EditDoxygen_JointHistogramMutualInformationImageToImageMetricv4_1363190160'

d407201 DOC: Modify JointHistogramMutualInformationImageToImageMetricv4 comments.
Merge topic 'EditDoxygen_JointHistogramMutualInformationImageToImageMetricv4_1363189266'

551d338 DOC: Modify JointHistogramMutualInformationImageToImageMetricv4 comments.
Merge topic 'Perf_QEMesh'

a36107a PERF: improve performance of couple of methods of itk::QuadEdgeMesh
Merge topic 'morphology-doc-spell'

f08bc05 DOC: Fix misspelling in ObjectMorphologyImageFilter
Merge topic 'gdcm-cleanup-reader'

cb76cbc STYLE: Remove unnecessary function call in GDCMImageIO
Merge topic 'gdcm-cleanup-examples'

f04a362 STYLE: Remove calls to deprecated functionality from DICOM Examples / Tests
Merge topic 'ConsolidateImageRegionSplitting'

2496fca ENH: Adding image region splitter for separable filtering
4c47e7d ENH: Creating templateless region splitter classes
STYLE: Add detail to the vxl update instructions

Make the working directory for each command sequence explicit.  State
the purpose of the script recorded in the upstream snapshot branch
commit messages.  Add ascii-art to show the history shape as it is
constructed.  Add a Change-Id line to the upstream snapshot commits so
that the entire update topic can be reviewed in Gerrit.

Change-Id: I849330fe6bdd5c48f70c2f0a7916328936b3e9de
PERF: Do not spawn threads that will not be used.

Update the ImageSource base class, to not spawn threads that will not
be used. Previously, threads were spawned and then terminated in the
ThreaderCallback method. This method was not user overindulge, so no
compatibility issues should be created.

I have observed up to 100X performance improvement for processing an
image of 1 pixel :)

Change-Id: Ie2d21886e175b5fbee0ce20f0628c97020d8d9e2
ENH: ImageIO's now use ImageRegionSplitter base

Moved ImageIORegion to Common module. Added GetModifiable methods.

Added methods to ImageRegionSplitterBase for ImageIORegion objects.

Refactored ImageIOBase to use the default ImageRegionSplitterBase
method for streaming IO.

Change-Id: I0c07db23824d65086a64b76dbecbe01137fa78a2
Merge topic 'vxl-update-instructions'

6f39a08 STYLE: Add detail to the vxl update instructions