BUG: Fix alpha assignment for RGBA TIFF.

The alpha value should not be inverted.

Add additional test file baseline for regression testing.

Co-authored-by: Мар'ян Климов <nekto1989@gmail.com>
Co-authored-by: Ivan Kubarev <Ivan.Kubarev@materialise.kiev.ua>

Change-Id: Ic865abb18fe11739df0633888423a4b302efc2ec
ENH: Convert three ImageRegistration Examples to ITKv4

Here ImageRegistration examples 11 to 13, related to the optimizer
section of the ITKSoftwareGuide, are converted to use ITKv4 registration
framework for their registration processes.

Change-Id: Ib22f2cb06c2f7d811a05c982dfc3bf1f4e36c3e8
ENH: Importing Laplacian Deformation for QuadEdgeMesh

Code from IJ paper Laplacian Mesh Deformation

  http://www.insight-journal.org/browse/publication/890
  http://hdl.handle.net/10380/3410

Change-Id: I170de75843605e51f79f59db04d5f3c6db24f111
DOC: Add more explanation about SmoothingQuadEdgeMeshFilter's usage

Change-Id: I23e501b89d96ef24fb0effe97a1c517f9b3deeed
ENH: Allow specification of orthogonality tolerance in rigid transforms.

Change-Id: I1f39006ef2306e561584c8e3dbb544b641e3e410
BUG: TransformFileReader does not clear its TransformList.

Calling multiple times will generate the wrong results.

Change-Id: I3f8e01ea18393968c9327f16a847de321729c9a7
ENH: SmoothingQuadEdgeMeshFilter::SetCoefficientMethod calls Modified()

Change-Id: I5341b384ec13289c1b0f986f8066b994316b459e
ENH: Add progress report in itk::SmoothingQuadEdgeMeshFilter

Change-Id: Id86308f460e80d0cc4c710894d912e5a85f945c0
ENH:  Initializing the transform center.

Linear transforms derived from the itk::MatrixOffsetTransformBase
class default to a center of rotation at the origin.  However,
this is generally a suboptimal starting point for optimization.
Instead, we use the following heuristics (h/t to Brad Lowekamp
for pointing this out):
  1) we use the center of the previous linear transform
     (presumably optimized) to initialize the current linear
     transform.
  2) a special case would be if someone wanted to optimize a
     linear transform following optimization of a deformable
     transform.  What we do in this case is go back further
     in the queue to find the closest, previous linear transform
     and use its center.
  3) if there is no previous transforms, we leave the center of
     mass as the default.

Change-Id: Iacb0442e0db51a1d004e9028868ce36fe530341e
BUG: Prevent dangling pointer in HDF5TransformIO.

If Read() or Write() is called multiple times, and an exception occurs during

  this->m_H5File = new H5::H5File(this->GetFileName(),H5F_ACC_TRUNC);

on the next round delete this->m_H5File may be a dangling pointer, and

  delete this->m_H5File;

is dangerous.

Suggested-by: András Lassó <lasso@cs.queensu.ca>

Change-Id: I7a601c71358b8bfcf6388bbb6f30954054b2df09
ENH: Do not setup the python tests if not asked

When building with python wrappings, the test files were downloaded and the tests were setup.
This is now done only if asked by the user, by setting BUILD_TESTING to ON

Change-Id: I81e711fb696083afc715d15ee0a3e1511ba91a41
COMP: Do not use _stat64 with MinGW-32.

Unlike MinGW-w64, MinGW-32 aka MinGW, does not define as much of the API
including _stat64.  Do not use use _stat64 in TIFFImageIO when building with
MinGW-32.

Change-Id: I8f13a4500cdadf4f4adae7b5cf8893fe8b8cad55
BUG: Use METER of sCAL scale unit

Change the scale unit field in the image to be PNG_SCALE_METER. The
image previously have a UNKNOWN unit type, which roduces a
warning in libpng 1.5, and the actual scale is ignored. This resulted
in the SignedMaurerDistanceMapImageFilterTest3 failure due to
different image spacings.

Change-Id: I3340f36fe1ce44308993f1720fc1fd2e66b88a2e
BUG: Use PNG_SCALE_METER for PNG sCAL unit

With libpng 1.5 if the unit is UNKNOWN when reading then an error is
printed, and the other spacing values are ignored. By writing METER
unit, the resulting png can be correctly read with spacing.

No unit conversion is done to preserve compatibility.

Change-Id: I74f4240221d31edecf2248425167659857326009
Merge topic 'HDF5TransformIO-DanglingPointer'

9c1b469b BUG: Prevent dangling pointer in HDF5TransformIO.
1ba15052 BUG: TransformFileReader does not clear its TransformList.
37b93bf9 ENH: Allow specification of orthogonality tolerance in rigid transforms.
ENH: Add multi-Res and multistage registration Examples to ITKv4

MultiResImageRegsitration1 example is converted to use ITKv4 registration
framework along with the related explanations.

Also running a multistage regsitration process is completely
illustrated using two newly added examples to ITKv4.

Change-Id: I1301110a030e76b2c9d811de7303dbfc7c726b2d
Merge topic 'DocSmoothing'

48cade29 DOC: Add more explanation about SmoothingQuadEdgeMeshFilter's usage
Merge topic 'RGBATiff'

86f19dd7 BUG: Fix alpha assignment for RGBA TIFF.
BUG: Improve thread-safety and performance of PCAShapeSignedDistanceFunction.

m_Selectors is a smart pointer, and if manipulated by multiple threads, there
can be race conditions to set its value.  Through some refactoring, this
member variable is no longer needed and is removed.

Change-Id: I762dd7751e7ebfab39f77f11b1cd3ab653c69c04
Merge topic 'PCAShapeSignedDistanceFunction_release'

ffa8ff76 BUG: Improve thread-safety and performance of PCAShapeSignedDistanceFunction.