diff --git a/Modules/Filtering/MorphologicalContourInterpolation/CMakeLists.txt b/Modules/Filtering/MorphologicalContourInterpolation/CMakeLists.txt new file mode 100644 index 000000000000..effa52b1bde1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/CMakeLists.txt @@ -0,0 +1,5 @@ +project(MorphologicalContourInterpolation) + +itk_module_impl() + +itk_module_examples() diff --git a/Modules/Filtering/MorphologicalContourInterpolation/LICENSE b/Modules/Filtering/MorphologicalContourInterpolation/LICENSE new file mode 100644 index 000000000000..9b259bdfcf90 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Modules/Filtering/MorphologicalContourInterpolation/README.md b/Modules/Filtering/MorphologicalContourInterpolation/README.md new file mode 100644 index 000000000000..85a42f69010a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/README.md @@ -0,0 +1,34 @@ +# MorphologicalContourInterpolation + +In-tree ITK module providing filters that interpolate manually +segmented anatomical contours through volumetric label data, using +morphological reconstruction techniques. The result is a 3D label +mask reconstructed from a sparse set of 2D contours drawn on +arbitrary slices. + +The flagship class is `itk::MorphologicalContourInterpolator`. + +## Origin + +Ingested from the standalone remote module +[**KitwareMedical/ITKMorphologicalContourInterpolation**](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation) +on 2026-05-04 via the v4 ingestion pipeline. The upstream repository +will be archived read-only after this PR merges; it remains +reachable at the URL above for historical reference (including the +`examples/`, `wasm/`, and `doc/` directories which were intentionally +left in the upstream archive). + +## Test dependency on RLEImage + +This module's tests `TEST_DEPENDS` on `RLEImage` (also in-tree at +`Modules/Filtering/RLEImage/`). Setting both +`Module_MorphologicalContourInterpolation:BOOL=ON` and +`Module_RLEImage:BOOL=ON` enables the full test set; with only the +former the module library still builds and is usable, but the +RLEImage-flavored tests are not configured. + +## References + +- Zukić D., Vlašić-Cicvarić I., Beichel R.R., Sonka M., Hodgdon T., + Aylward S. *Interpolation of label maps from morphological contour + data.* The Insight Journal. 2016. diff --git a/Modules/Filtering/MorphologicalContourInterpolation/include/itkMorphologicalContourInterpolator.h b/Modules/Filtering/MorphologicalContourInterpolation/include/itkMorphologicalContourInterpolator.h new file mode 100644 index 000000000000..9ba6882d5356 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/include/itkMorphologicalContourInterpolator.h @@ -0,0 +1,412 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#ifndef itkMorphologicalContourInterpolator_h +#define itkMorphologicalContourInterpolator_h + +#include "itkBinaryThresholdImageFilter.h" +#include "itkConnectedComponentImageFilter.h" +#include "itkExtractImageFilter.h" +#include "itkImageToImageFilter.h" +#include + +namespace itk +{ +/** \class MorphologicalContourInterpolator + * + * \brief Interpolates contours between slices. Based on a paper by Albu et al. + * + * \par Inputs and Outputs + * This is an image-to-image filter. The dimensionality is 3D or higher. + * Input contains an image with some slices segmented, usually manually. + * The output has all in-between slices also segmented. + * + * \par Parameters + * Slices are detected at positions where a pixel exists with same labeled + * neighbors in slice and only clear (0) neighbors perpendicular to the slice. + * If default behaviour is unwanted, contour indices can be set + * by enabling UseCustomSlicePositions and calling SetLabeledSliceIndices. + * + * Filter can be restricted to run along only one axis, and/or to interpolate + * just one label. + * + * Since optimal alignment between slices would require exhaustive search, + * the default is to use heuristic (breadth first search starting from centroid). + * + * There is also an alternative algorithm based on distance transform approach. + * It is slightly faster, but it can jump across a twisty shape (not geodesic). + * + * Reference: + * Albu AB, Beugeling T, Laurendeau D. "A morphology-based approach for + * interslice interpolation of anatomical slices from volumetric images." + * IEEE Trans Biomed Eng. 2008 Aug;55(8):2022-38. DOI:10.1109/TBME.2008.921158 + * + * Acknowledgement: + * This work is supported by NIH grant R01 EB014346, "Continued development + * and maintenance of the ITK-SNAP 3D image segmentation software." + * + * \ingroup MorphologicalContourInterpolation + */ +template +class MorphologicalContourInterpolator : public ImageToImageFilter +{ + template + friend class MorphologicalContourInterpolatorParallelInvoker; + +public: + ITK_DISALLOW_COPY_AND_MOVE(MorphologicalContourInterpolator); + + /** Standard class type alias. */ + using Self = MorphologicalContourInterpolator; + using Superclass = ImageToImageFilter; + using Pointer = SmartPointer; + using SliceType = Image; + + /** Method for creation through the object factory. */ + itkNewMacro(Self); + + /** Run-time type information (and related methods). */ + itkOverrideGetNameOfClassMacro(MorphologicalContourInterpolator); + + /** Interpolate only this label. Interpolates all labels if set to 0 (default). */ + itkSetMacro(Label, typename TImage::PixelType); + + /** Which label is interpolated. 0 means all labels (default). */ + itkGetMacro(Label, typename TImage::PixelType); + + /** Which label is interpolated. 0 means all labels (default). */ + itkGetConstMacro(Label, typename TImage::PixelType); + + /** Interpolate only along this axis. Interpolates along all axes if set to -1 (default). */ + itkSetMacro(Axis, int); + + /** Axis of interpolation. -1 means interpolation along all axes (default). */ + itkGetMacro(Axis, int); + + /** Axis of interpolation. -1 means interpolation along all axes (default). */ + itkGetConstMacro(Axis, int); + + /** Heuristic alignment of regions for interpolation is faster than optimal alignment. + * Default is heuristic. */ + itkSetMacro(HeuristicAlignment, bool); + + /** Heuristic alignment of regions for interpolation is faster than optimal alignment. + * Default is heuristic. */ + itkGetMacro(HeuristicAlignment, bool); + + /** Heuristic alignment of regions for interpolation is faster than optimal alignment. + * Default is heuristic. */ + itkGetConstMacro(HeuristicAlignment, bool); + + /** Using distance transform instead of repeated dilations to calculate + * the median contour is slightly faster, but produces lower quality interpolations. + * Default is OFF (that is, use repeated dilations). */ + itkSetMacro(UseDistanceTransform, bool); + + /** Using distance transform instead of repeated dilations to calculate + * the median contour is slightly faster, but produces lower quality interpolations. + * Default is OFF (that is, use repeated dilations). */ + itkGetMacro(UseDistanceTransform, bool); + + /** Using distance transform instead of repeated dilations to calculate + * the median contour is slightly faster, but produces lower quality interpolations. + * Default is OFF (that is, use repeated dilations). */ + itkGetConstMacro(UseDistanceTransform, bool); + + /** Use custom slice positions (not slice auto-detection). + * SetLabeledSliceIndices has to be called prior to Update(). */ + itkSetMacro(UseCustomSlicePositions, bool); + + /** Use custom slice positions (not slice auto-detection). + * SetLabeledSliceIndices has to be called prior to Update(). */ + itkGetMacro(UseCustomSlicePositions, bool); + + /** Use custom slice positions (not slice auto-detection). + * SetLabeledSliceIndices has to be called prior to Update(). */ + itkGetConstMacro(UseCustomSlicePositions, bool); + + /** Perform extrapolation for branch extremities. + * Branch extremities are defined as regions having no overlap with any region in the next slice. + * Extrapolation helps generate smooth surface closings. + * Default is ON + * */ + itkSetMacro(UseExtrapolation, bool); + + /** Use ball instead of default cross structuring element for repeated dilations. */ + void + SetUseBallStructuringElement(bool useBall) + { + if (useBall != m_UseBallStructuringElement) + { + m_UseBallStructuringElement = useBall; + m_ConnectedComponents->SetFullyConnected(useBall); + this->Modified(); + } + } + + /** Use ball instead of default cross structuring element for repeated dilations. */ + itkGetMacro(UseBallStructuringElement, bool); + + /** Use ball instead of default cross structuring element for repeated dilations. */ + itkGetConstMacro(UseBallStructuringElement, bool); + + /** If there is a pixel whose all 4-way neighbors belong the the same label + except along one axis, and along that axis its neighbors are 0 (background), + then that axis should be interpolated along. Interpolation is possible + along more than one axis. Updates LabeledSliceIndices.*/ + void + DetermineSliceOrientations(); + + /** An std::set of slice indices which need to be interpolated. */ + using SliceSetType = std::set; + + /** Clears all custom slice positions. */ + void + ClearLabeledSliceIndices() + { + m_LabeledSlices.clear(); + m_LabeledSlices.resize(TImage::ImageDimension); + this->Modified(); + } + + /** If default slice detection is not wanted, slice indices + * between which interpolation is done can be set using this method. */ + void + SetLabeledSliceIndices(unsigned int axis, + typename TImage::PixelType label, + const std::vector & indices) + { + SliceSetType sliceSet; + sliceSet.insert(indices.begin(), indices.end()); + m_LabeledSlices[axis][label] = sliceSet; + this->Modified(); + } + + /** If default slice detection is not wanted, slice indices + * between which interpolation is done can be set using this method. */ + void + SetLabeledSliceIndices(unsigned int axis, typename TImage::PixelType label, const SliceSetType & indices) + { + m_LabeledSlices[axis][label] = indices; + this->Modified(); + } + + /** Slice indices between which interpolation is done. */ + SliceSetType + GetLabeledSliceIndices(unsigned int axis, typename TImage::PixelType label) + { + return m_LabeledSlices[axis][label]; + } + + // each label gets a set of slices in which it is present + using LabeledSlicesType = std::unordered_map; + using SliceIndicesType = std::vector; + + /** Slice indices between which interpolation is done. */ + SliceIndicesType + GetLabeledSliceIndices() + { + return m_LabeledSlices; + } + +protected: + MorphologicalContourInterpolator(); + ~MorphologicalContourInterpolator() override = default; + typename TImage::PixelType m_Label; + int m_Axis{ -1 }; + bool m_HeuristicAlignment{ true }; + bool m_UseDistanceTransform{ true }; + bool m_UseBallStructuringElement{ false }; + bool m_UseCustomSlicePositions{ false }; + bool m_UseExtrapolation{ true }; + IdentifierType m_MinAlignIters; // minimum number of iterations in align method + IdentifierType m_MaxAlignIters; // maximum number of iterations in align method + IdentifierType m_ThreadCount; // for thread local instances + SliceIndicesType m_LabeledSlices; // one for each axis + + /** Derived image type alias. */ + using BoolImageType = Image; + using FloatSliceType = Image; + using BoolSliceType = Image; + + /** Are these two slices equal? */ + bool + ImagesEqual(typename BoolSliceType::Pointer & a, typename BoolSliceType::Pointer & b); + + /** Does the real work. */ + void + GenerateData() override; + + /** Determines correspondances between two slices and calls apropriate methods. */ + void + InterpolateBetweenTwo(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iconn, + typename SliceType::Pointer & jconn); + + /** If interpolation is done along more than one axis, + the interpolations are merged using a modified "or" rule: + -if all interpolated images have 0 for a given pixel, the output is 0 + -if just one image has a non-zero label, then that label is chosen + -if more than one image has a non-zero label, last written label is chosen */ + void + InterpolateAlong(int axis, TImage * out, float startProgress, float endProgress); + + /** Slice i has a region, slice j does not */ + void + Extrapolate(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId); + + /** Creates a signed distance field image. */ + typename FloatSliceType::Pointer + MaurerDM(typename BoolSliceType::Pointer & inImage); + + /** A sequence of conditional dilations starting with begin and reaching end. + begin and end must cover the same region (size and index the same) */ + std::vector + GenerateDilationSequence(typename BoolSliceType::Pointer & begin, typename BoolSliceType::Pointer & end); + + /** Finds an interpolating mask for these two aligned masks */ + typename BoolSliceType::Pointer + FindMedianImageDilations(typename BoolSliceType::Pointer & intersection, + typename BoolSliceType::Pointer & iMask, + typename BoolSliceType::Pointer & jMask); + + /** Finds an interpolating mask for these two aligned masks */ + typename BoolSliceType::Pointer + FindMedianImageDistances(typename BoolSliceType::Pointer & intersection, + typename BoolSliceType::Pointer & iMask, + typename BoolSliceType::Pointer & jMask); + + /** Build transition sequence and pick the median */ + void + Interpolate1to1(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + typename TImage::PixelType jRegionId, + const typename SliceType::IndexType & translation, + bool recursive); + + using PixelList = std::vector; + + /** Splits the bigger region and does N 1-to-1 interpolations */ + void + Interpolate1toN(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + const PixelList & jRegionIds, + const typename SliceType::IndexType & translation); + + /** Crates a translated copy of part of the image which fits in the newRegion. */ + typename SliceType::Pointer + TranslateImage(typename SliceType::Pointer & image, + const typename SliceType::IndexType & translation, + typename SliceType::RegionType newRegion); + + /** The returns cardingal of the symmetric distance between images. + The images must cover the same region. */ + IdentifierType + CardinalSymmetricDifference(typename BoolSliceType::Pointer & shape1, typename BoolSliceType::Pointer & shape2); + + /** Copied from ImageSource and changed to allocate a cleared buffer. */ + void + AllocateOutputs() override; + + /** Returns the centroid of given regions */ + typename SliceType::IndexType + Centroid(typename SliceType::Pointer & conn, const PixelList & regionIds); + + /** Calculates maximum intersection region for both slices given a translation. + Both inputs are modified so that jRegion is a translated version of iRegion. */ + void + IntersectionRegions(const typename SliceType::IndexType & translation, + typename SliceType::RegionType & iRegion, + typename SliceType::RegionType & jRegion); + + /** Returns number of intersecting pixels */ + IdentifierType + Intersection(typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + const PixelList & jRegionIds, + const typename SliceType::IndexType & translation); + + /** How much j needs to be translated to best align with i */ + typename SliceType::IndexType + Align(typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + const PixelList & jRegionIds); + + using BoundingBoxesType = std::unordered_map; + BoundingBoxesType m_BoundingBoxes; // bounding box for each label + + /** Calculates a bounding box of non-zero pixels. */ + typename SliceType::RegionType + BoundingBox(itk::SmartPointer image); + + /** Expands a region to incorporate the provided index. + * Assumes both a valid region and a valid index. + * It can be invoked with 2D or 3D region, hence the additional template parameter. */ + template + void + ExpandRegion(typename T2::RegionType & region, const typename T2::IndexType & index); + + /** Connected components of a specified region. */ + typename SliceType::Pointer + RegionedConnectedComponents(const typename TImage::RegionType & region, + typename TImage::PixelType label, + IdentifierType & objectCount); + + /** Seed and mask must cover the same region (size and index the same). */ + typename BoolSliceType::Pointer + Dilate1(typename BoolSliceType::Pointer & seed, typename BoolSliceType::Pointer & mask); + + using RoiType = ExtractImageFilter; + typename RoiType::Pointer m_RoI; + + using BinarizerType = BinaryThresholdImageFilter; + typename BinarizerType::Pointer m_Binarizer; + + using ConnectedComponentsType = ConnectedComponentImageFilter; + typename ConnectedComponentsType::Pointer m_ConnectedComponents; +}; +} // namespace itk + +#ifndef ITK_MANUAL_INSTANTIATION +# include "itkMorphologicalContourInterpolator.hxx" +#endif + +#endif // itkMorphologicalContourInterpolator_h diff --git a/Modules/Filtering/MorphologicalContourInterpolation/include/itkMorphologicalContourInterpolator.hxx b/Modules/Filtering/MorphologicalContourInterpolation/include/itkMorphologicalContourInterpolator.hxx new file mode 100644 index 000000000000..7676f577bbba --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/include/itkMorphologicalContourInterpolator.hxx @@ -0,0 +1,1634 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ +#ifndef itkMorphologicalContourInterpolator_hxx +#define itkMorphologicalContourInterpolator_hxx + +#include "itkAndImageFilter.h" +#include "itkBinaryBallStructuringElement.h" +#include "itkBinaryCrossStructuringElement.h" +#include "itkBinaryDilateImageFilter.h" +#include "itkCastImageFilter.h" +#include "itkImageAlgorithm.h" +#include "itkImageRegionConstIteratorWithIndex.h" +#include "itkImageRegionIterator.h" +#include "itkMultiThreaderBase.h" +#include "itkObjectFactory.h" +#include "itkOrImageFilter.h" +#include "itkProgressTransformer.h" +#include "itkSignedMaurerDistanceMapImageFilter.h" +#include "itkUnaryFunctorImageFilter.h" +#include +#include +#include +#include +#include +#include + +namespace itk +{ +template +struct SegmentBetweenTwo +{ + int axis; + TImage * out; + int label, i, j; + typename MorphologicalContourInterpolator::SliceType::Pointer iconn, jconn; +}; + + +template +bool +MorphologicalContourInterpolator::ImagesEqual(typename BoolSliceType::Pointer & a, + typename BoolSliceType::Pointer & b) +{ + ImageRegionConstIterator ita(a, a->GetLargestPossibleRegion()); + ImageRegionConstIterator itb(b, b->GetLargestPossibleRegion()); + + while (!ita.IsAtEnd()) + { + if (ita.Get() != itb.Get()) + { + break; + } + ++ita; + ++itb; + } + + if (ita.IsAtEnd()) + { + return true; + } + else + { + return false; + } +} // >::ImagesEqual + +template +MorphologicalContourInterpolator::MorphologicalContourInterpolator() + : m_Label(0) + , + + m_MinAlignIters(std::pow(2., static_cast(TImage::ImageDimension))) + , // smaller of this and pixel count of the search image + m_MaxAlignIters(std::pow(6., static_cast(TImage::ImageDimension))) + , // bigger of this and root of pixel count of the search image + m_ThreadCount(MultiThreaderBase::GetGlobalDefaultNumberOfThreads()) + , m_LabeledSlices(TImage::ImageDimension) // initialize with empty sets +{ + // set up pipeline for regioned connected components + m_RoI = RoiType::New(); + m_RoI->SetDirectionCollapseToIdentity(); + m_Binarizer = BinarizerType::New(); + m_Binarizer->SetInput(m_RoI->GetOutput()); + m_ConnectedComponents = ConnectedComponentsType::New(); + m_ConnectedComponents->SetInput(m_Binarizer->GetOutput()); + // FullyConnected is related to structuring element used + // true for ball, false for cross + m_ConnectedComponents->SetFullyConnected(m_UseBallStructuringElement); + m_ConnectedComponents->SetBackgroundValue(NumericTraits::ZeroValue()); +} + +template +template +void +MorphologicalContourInterpolator::ExpandRegion(typename T2::RegionType & region, + const typename T2::IndexType & index) +{ + for (unsigned int a = 0; a < T2::ImageDimension; ++a) + { + if (region.GetIndex(a) > index[a]) + { + region.SetSize(a, region.GetSize(a) + region.GetIndex(a) - index[a]); + region.SetIndex(a, index[a]); + } + else if (region.GetIndex(a) + (typename T2::IndexValueType)region.GetSize(a) <= index[a]) + { + region.SetSize(a, index[a] - region.GetIndex(a) + 1); + } + // else it is already within + } +} + +template +void +MorphologicalContourInterpolator::DetermineSliceOrientations() +{ + m_LabeledSlices.clear(); + m_LabeledSlices.resize(TImage::ImageDimension); // initialize with empty sets + m_BoundingBoxes.clear(); + + typename TImage::ConstPointer m_Input = this->GetInput(); + typename TImage::Pointer m_Output = this->GetOutput(); + + typename TImage::RegionType region = m_Output->GetRequestedRegion(); + ImageRegionConstIteratorWithIndex it(m_Input, region); + while (!it.IsAtEnd()) + { + typename TImage::IndexType indPrev, indNext; + const typename TImage::IndexType ind = it.GetIndex(); + const typename TImage::PixelType val = m_Input->GetPixel(ind); + if (val != 0) + { + typename TImage::RegionType boundingBox1; + boundingBox1.SetIndex(ind); + for (unsigned int a = 0; a < TImage::ImageDimension; ++a) + { + boundingBox1.SetSize(a, 1); + } + std::pair resBB = + m_BoundingBoxes.insert(std::make_pair(val, boundingBox1)); + if (!resBB.second) // include this index in existing BB + { + ExpandRegion(resBB.first->second, ind); + } + + unsigned int cTrue = 0; + unsigned int cAdjacent = 0; + unsigned int axis = 0; + for (unsigned int a = 0; a < TImage::ImageDimension; ++a) + { + indPrev = ind; + indPrev[a]--; + indNext = ind; + indNext[a]++; + typename TImage::PixelType prev = 0; + if (region.IsInside(indPrev)) + { + prev = m_Input->GetPixel(indPrev); + } + typename TImage::PixelType next = 0; + if (region.IsInside(indNext)) + { + next = m_Input->GetPixel(indNext); + } + if (prev == 0 && next == 0) // && - isolated slices only, || - flat edges too + { + axis = a; + ++cTrue; + } + else if (prev == val && next == val) + { + ++cAdjacent; + } + } + if (cTrue == 1 && cAdjacent == TImage::ImageDimension - 1) + // slice has empty adjacent space only along one axis + { + if (m_Axis == -1 || m_Axis == int(axis)) + { + m_LabeledSlices[axis][val].insert(ind[axis]); + } + } + } + ++it; + } +} // >::DetermineSliceOrientations + +template +void +MorphologicalContourInterpolator::Extrapolate(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId) +{ + PixelList jRegionIds; + + jRegionIds.push_back(iRegionId); + typename SliceType::IndexType centroid = Centroid(iConn, jRegionIds); + + typename SliceType::RegionType reg3; + typename SliceType::SizeType size; + size.Fill(3); + reg3.SetSize(size); + + typename SliceType::IndexType phIndex; + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + phIndex[d] = centroid.GetIndex()[d] - 1; + } + reg3.SetIndex(phIndex); + + // create a phantom small slice centered around centroid + typename SliceType::Pointer phSlice = SliceType::New(); + phSlice->CopyInformation(iConn); + phSlice->SetRegions(reg3); + phSlice->Allocate(true); + + // add a phantom point to the center of a newly constructed slice + phSlice->SetPixel(centroid, iRegionId); + + // do alignment in case the iShape is concave and centroid is not within the iShape + typename SliceType::IndexType translation = Align(iConn, iRegionId, phSlice, jRegionIds); + // now translate the phantom slice for best alignment + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + phIndex[d] -= translation[d]; + } + reg3.SetIndex(phIndex); + phSlice->SetRegions(reg3); + typename SliceType::IndexType t0; + t0.Fill(0); + Interpolate1to1(axis, out, label, i, j, iConn, iRegionId, phSlice, iRegionId, t0, false); +} // >::Extrapolate + +template +auto +MorphologicalContourInterpolator::Dilate1(typename BoolSliceType::Pointer & seed, + typename BoolSliceType::Pointer & mask) -> + typename BoolSliceType::Pointer +{ + // set up structuring element for dilation + using CrossStructuringElementType = + BinaryCrossStructuringElement; + using BallStructuringElementType = + BinaryBallStructuringElement; + using CrossDilateType = BinaryDilateImageFilter; + using BallDilateType = BinaryDilateImageFilter; + + typename CrossDilateType::Pointer crossDilator = CrossDilateType::New(); + typename BallDilateType::Pointer ballDilator = BallDilateType::New(); + CrossStructuringElementType crossStructuringElement; + BallStructuringElementType ballStructuringElement; + using AndFilterType = AndImageFilter; + typename AndFilterType::Pointer andFilter = AndFilterType::New(); + + andFilter->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + using SizeType = Size; + SizeType size; + size.Fill(1); + + crossDilator->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + crossStructuringElement.SetRadius(size); + crossStructuringElement.CreateStructuringElement(); + crossDilator->SetKernel(crossStructuringElement); + + ballDilator->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + ballStructuringElement.SetRadius(size); + ballStructuringElement.CreateStructuringElement(); + ballDilator->SetKernel(ballStructuringElement); + + typename BoolSliceType::Pointer temp; + if (m_UseBallStructuringElement) + { + ballDilator->SetInput(seed); + ballDilator->GetOutput()->SetRegions(seed->GetRequestedRegion()); + ballDilator->Update(); + temp = ballDilator->GetOutput(); + } + else + { + crossDilator->SetInput(seed); + crossDilator->GetOutput()->SetRegions(seed->GetRequestedRegion()); + crossDilator->Update(); + temp = crossDilator->GetOutput(); + } + temp->DisconnectPipeline(); + // temp->SetRegions(mask->GetLargestPossibleRegion()); //not needed when seed and mask have same regions + + andFilter->SetInput(0, mask); + andFilter->SetInput(1, temp); + andFilter->GetOutput()->SetRegions(seed->GetRequestedRegion()); + andFilter->Update(); + typename BoolSliceType::Pointer result = andFilter->GetOutput(); + result->DisconnectPipeline(); + return result; +} // >::Dilate1 + +template +std::vector::BoolSliceType::Pointer> +MorphologicalContourInterpolator::GenerateDilationSequence(typename BoolSliceType::Pointer & begin, + typename BoolSliceType::Pointer & end) +{ + std::vector seq; + seq.push_back(Dilate1(begin, end)); + + do + { + seq.back()->DisconnectPipeline(); + seq.push_back(Dilate1(seq.back(), end)); + } while (!ImagesEqual(seq.back(), seq[seq.size() - 2])); + + seq.pop_back(); // remove duplicate image + return seq; +} + +template +auto +MorphologicalContourInterpolator::FindMedianImageDilations(typename BoolSliceType::Pointer & intersection, + typename BoolSliceType::Pointer & iMask, + typename BoolSliceType::Pointer & jMask) -> + typename BoolSliceType::Pointer +{ + std::vector iSeq = GenerateDilationSequence(intersection, iMask); + std::vector jSeq = GenerateDilationSequence(intersection, jMask); + std::reverse(iSeq.begin(), iSeq.end()); // we want to start from i and end at intersection + if (iSeq.size() < jSeq.size()) + { + iSeq.swap(jSeq); // swap so iSeq.size() >= jSeq.size() + } + float ratio = float(jSeq.size()) / iSeq.size(); + + // generate union of transition sequences + using OrType = OrImageFilter; + typename OrType::Pointer orFilter = OrType::New(); + orFilter->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + + std::vector seq; + for (unsigned x = 0; x < iSeq.size(); x++) + { + orFilter->SetInput(0, iSeq[x]); + unsigned xj = ratio * x; + orFilter->SetInput(1, jSeq[xj]); + orFilter->GetOutput()->SetRegions(iMask->GetRequestedRegion()); + orFilter->Update(); + seq.push_back(orFilter->GetOutput()); + seq.back()->DisconnectPipeline(); + } + + // find median + unsigned minIndex = 0; + IdentifierType min = iMask->GetRequestedRegion().GetNumberOfPixels(); + for (unsigned x = 0; x < iSeq.size(); x++) + { + IdentifierType iS = CardinalSymmetricDifference(seq[x], iMask); + IdentifierType jS = CardinalSymmetricDifference(seq[x], jMask); + IdentifierType xScore = iS >= jS ? iS - jS : jS - iS; // itk::Math::abs(iS-jS) + if (xScore < min) + { + min = xScore; + minIndex = x; + } + } + return seq[minIndex]; +} // >::FindMedianImageDilations + +template +auto +MorphologicalContourInterpolator::MaurerDM(typename BoolSliceType::Pointer & mask) -> + typename FloatSliceType::Pointer +{ + using FilterType = itk::SignedMaurerDistanceMapImageFilter; + typename FilterType::Pointer filter = FilterType::New(); + filter->SetUseImageSpacing(false); // interpolation algorithm calls for working in index space + filter->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + filter->SetInput(mask); + filter->GetOutput()->SetRequestedRegion(mask->GetRequestedRegion()); + filter->Update(); + return filter->GetOutput(); +} + +template +auto +MorphologicalContourInterpolator::FindMedianImageDistances(typename BoolSliceType::Pointer & intersection, + typename BoolSliceType::Pointer & iMask, + typename BoolSliceType::Pointer & jMask) -> + typename BoolSliceType::Pointer +{ + // calculate distance field + typename FloatSliceType::Pointer sdf = MaurerDM(intersection); + + // create histograms of distances and union + typename BoolSliceType::Pointer orImage = BoolSliceType::New(); + orImage->CopyInformation(intersection); + orImage->SetRegions(iMask->GetRequestedRegion()); + orImage->Allocate(true); + std::vector iHist; + std::vector jHist; + ImageRegionConstIterator iti(iMask, iMask->GetRequestedRegion()); + ImageRegionConstIterator itj(jMask, iMask->GetRequestedRegion()); + ImageRegionIterator ito(orImage, iMask->GetRequestedRegion()); + ImageRegionConstIterator itsdf(sdf, iMask->GetRequestedRegion()); + constexpr short fractioning = 10; // how many times more precise distance than rounding to int + while (!itsdf.IsAtEnd()) + { + bool iM = iti.Get(); + bool jM = itj.Get(); + typename TImage::PixelType dist = fractioning * itsdf.Get(); + if (iM && !jM) + { + if (size_t(dist) >= iHist.size()) + { + iHist.resize(dist + 1, 0); + } + iHist[dist]++; + ito.Set(true); + } + else if (jM && !iM) + { + if (size_t(dist) >= jHist.size()) + { + jHist.resize(dist + 1, 0); + } + jHist[dist]++; + ito.Set(true); + } + else if (iM && jM) + { + ito.Set(true); + } + + ++iti; + ++itj; + ++ito; + ++itsdf; + } + + // sum of histogram bins for i and j and + std::vector::size_type maxSize = std::max(iHist.size(), jHist.size()); + if (maxSize == 0) + { + return intersection; + } + iHist.resize(maxSize, 0); + jHist.resize(maxSize, 0); + std::vector iSum(maxSize, 0); + std::vector jSum(maxSize, 0); + iSum[0] = iHist[0]; + jSum[0] = jHist[0]; + for (unsigned b = 1; b < maxSize; b++) + { + iSum[b] = iSum[b - 1] + iHist[b]; + jSum[b] = jSum[b - 1] + jHist[b]; + } + long long iTotal = iSum[maxSize - 1]; + long long jTotal = jSum[maxSize - 1]; + + // find minimum of differences of sums + int bestBin = 0; + long long bestDiff = LLONG_MAX; + for (unsigned b = 0; b < maxSize; b++) + { + long long iS = itk::Math::abs(iTotal - iSum[b] + jSum[b]); + long long jS = itk::Math::abs(jTotal - jSum[b] + iSum[b]); + long long diff = itk::Math::abs(iS - jS); + if (diff < bestDiff) + { + bestDiff = diff; + bestBin = b; + } + } + + // threshold at distance bestBin is the median intersection + using FloatBinarizerType = BinaryThresholdImageFilter; + using AndFilterType = AndImageFilter; + typename FloatBinarizerType::Pointer threshold = FloatBinarizerType::New(); + typename AndFilterType::Pointer andFilter = AndFilterType::New(); + // excessive threading is counterproductive + threshold->SetNumberOfWorkUnits(1); + andFilter->SetNumberOfWorkUnits(1); + + threshold->SetInput(sdf); + threshold->SetUpperThreshold(float(bestBin) / fractioning); + threshold->GetOutput()->SetRequestedRegion(sdf->GetRequestedRegion()); + threshold->Update(); + + andFilter->SetInput(threshold->GetOutput()); + andFilter->SetInput(1, orImage); + andFilter->GetOutput()->SetRequestedRegion(orImage->GetRequestedRegion()); + andFilter->Update(); + typename BoolSliceType::Pointer median = andFilter->GetOutput(); + return median; +} // >::FindMedianImageDistances + +template +auto +MorphologicalContourInterpolator::BoundingBox(itk::SmartPointer image) -> + typename SliceType::RegionType +{ + typename SliceType::RegionType newRegion = image->GetLargestPossibleRegion(); + typename SliceType::IndexType minInd = newRegion.GetIndex() + newRegion.GetSize(); + typename SliceType::IndexType maxInd = newRegion.GetIndex(); + ImageRegionConstIteratorWithIndex iIt(image, newRegion); + + while (!iIt.IsAtEnd()) + { + if (iIt.Get()) + { + typename SliceType::IndexType ind = iIt.GetIndex(); + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + if (ind[d] < minInd[d]) + { + minInd[d] = ind[d]; + } + if (ind[d] > maxInd[d]) + { + maxInd[d] = ind[d]; + } + } + } + ++iIt; + } + + newRegion.SetIndex(minInd); + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + newRegion.SetSize(d, maxInd[d] - minInd[d] + 1); + } + return newRegion; +} // >::BoundingBox + +template +void +MorphologicalContourInterpolator::Interpolate1to1(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + typename TImage::PixelType jRegionId, + const typename SliceType::IndexType & translation, + bool recursive) +{ + // translate iConn by t/2 and jConn by -t/2 + typename SliceType::IndexType iTrans; + typename SliceType::IndexType jTrans; + typename SliceType::RegionType iRegion = iConn->GetLargestPossibleRegion(); + typename SliceType::RegionType jRegion = jConn->GetLargestPossibleRegion(); + typename SliceType::IndexType jBottom = jRegion.GetIndex(); + bool carry = false; + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + if (!carry) + { + iTrans[d] = translation[d] / 2; + carry = translation[d] % 2; + } + else if (translation[d] % 2 == 0) + { + iTrans[d] = translation[d] / 2; + } + else // use carry + { + if (translation[d] > 0) + { + iTrans[d] = translation[d] / 2 + 1; + } + else + { + iTrans[d] = translation[d] / 2 - 1; + } + carry = false; + } + jTrans[d] = iTrans[d] - translation[d]; + iRegion.SetIndex(d, iRegion.GetIndex()[d] + iTrans[d]); + jRegion.SetIndex(d, jRegion.GetIndex()[d] + jTrans[d]); + jBottom[d] = jRegion.GetIndex()[d] + jRegion.GetSize(d) - 1; + } + typename SliceType::RegionType newRegion = iRegion; + ExpandRegion(newRegion, jRegion.GetIndex()); + ExpandRegion(newRegion, jBottom); + typename SliceType::IndexValueType mid = (i + j + (carry ? 1 : 0)) / 2; // index of middle slice + + typename SliceType::Pointer iConnT = TranslateImage(iConn, iTrans, newRegion); + typename SliceType::Pointer jConnT = TranslateImage(jConn, jTrans, newRegion); + + if (!recursive) // reduce newRegion to bounding box so we deal with less pixels + { + newRegion = BoundingBox(iConnT); + typename SliceType::RegionType jBB = BoundingBox(jConnT); + typename SliceType::IndexType i2 = jBB.GetIndex(); + ExpandRegion(newRegion, i2); + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + i2[d] += jBB.GetSize(d) - 1; + } + ExpandRegion(newRegion, i2); + } + + // create and allocate slice binary masks + typename BoolSliceType::Pointer iSlice = BoolSliceType::New(); + iSlice->CopyInformation(iConnT); + iSlice->SetRegions(newRegion); + iSlice->Allocate(true); + typename BoolSliceType::Pointer jSlice = BoolSliceType::New(); + jSlice->CopyInformation(jConnT); + jSlice->SetRegions(newRegion); + jSlice->Allocate(true); + + // convert to binary by iteration + ImageRegionConstIterator iIt(iConnT, newRegion); + ImageRegionConstIterator jIt(jConnT, newRegion); + ImageRegionIterator ibIt(iSlice, newRegion); + ImageRegionIterator jbIt(jSlice, newRegion); + while (!iIt.IsAtEnd()) + { + if (iIt.Get() == iRegionId) + { + ibIt.Set(true); + } + if (jIt.Get() == jRegionId) + { + jbIt.Set(true); + } + ++iIt; + ++jIt; + ++ibIt; + ++jbIt; + } + + // create intersection + using AndSliceType = AndImageFilter; + typename AndSliceType::Pointer sAnd = AndSliceType::New(); + sAnd->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + sAnd->SetInput(0, iSlice); + sAnd->SetInput(1, jSlice); + sAnd->GetOutput()->SetRegions(iSlice->GetRequestedRegion()); + sAnd->Update(); + typename BoolSliceType::Pointer intersection = sAnd->GetOutput(); + intersection->DisconnectPipeline(); + + typename BoolSliceType::Pointer median; + if (m_UseDistanceTransform) + { + median = FindMedianImageDistances(intersection, iSlice, jSlice); + } + else + { + median = FindMedianImageDilations(intersection, iSlice, jSlice); + } + + // finally write it out into the output image pointer + typename TImage::RegionType outRegion = this->GetOutput()->GetRequestedRegion(); + typename SliceType::RegionType sliceRegion; + for (int d = 0; d < int(TImage::ImageDimension) - 1; d++) + { + if (d < axis) + { + sliceRegion.SetIndex(d, outRegion.GetIndex(d)); + sliceRegion.SetSize(d, outRegion.GetSize(d)); + } + else + { + sliceRegion.SetIndex(d, outRegion.GetIndex(d + 1)); + sliceRegion.SetSize(d, outRegion.GetSize(d + 1)); + } + } + typename SliceType::IndexType t0; + t0.Fill(0); + IntersectionRegions(t0, sliceRegion, newRegion); // clips new region to output region + // sliceRegion possibly shrunk, copy it into outRegion + for (int d = 0; d < int(TImage::ImageDimension) - 1; d++) + { + if (d < axis) + { + outRegion.SetIndex(d, sliceRegion.GetIndex(d)); + outRegion.SetSize(d, sliceRegion.GetSize(d)); + } + else + { + outRegion.SetIndex(d + 1, sliceRegion.GetIndex(d)); + outRegion.SetSize(d + 1, sliceRegion.GetSize(d)); + } + } + outRegion.SetIndex(axis, mid); + outRegion.SetSize(axis, 1); + + typename SliceType::Pointer midConn = SliceType::New(); + midConn->CopyInformation(iConnT); + midConn->SetRegions(newRegion); + midConn->Allocate(true); + + ImageRegionConstIterator seqIt(median, newRegion); + ImageRegionIterator midIt(midConn, newRegion); + while (!seqIt.IsAtEnd()) + { + if (seqIt.Get()) + { + midIt.Set(1); + } + ++seqIt; + ++midIt; + } + + bool withinReq = true; + typename TImage::RegionType reqRegion = this->GetOutput()->GetRequestedRegion(); + for (unsigned d = 0; d < TImage::ImageDimension; d++) + { + if (outRegion.GetIndex(d) < reqRegion.GetIndex(d) || + outRegion.GetIndex(d) + outRegion.GetSize(d) > reqRegion.GetIndex(d) + reqRegion.GetSize(d)) + { + withinReq = false; + break; + } + } + +#if !defined(__wasi__) && !defined(__EMSCRIPTEN__) + static std::mutex mutexLock; +#endif + if (withinReq) // else we should not write it + { + seqIt.GoToBegin(); + // writing through one RLEImage iterator invalidates all the others + // so this whole writing loop needs to be serialized +#if !defined(__wasi__) && !defined(__EMSCRIPTEN__) + std::lock_guard mutexHolder(mutexLock); +#endif + ImageRegionIterator outIt(out, outRegion); + while (!outIt.IsAtEnd()) + { + if (seqIt.Get() && outIt.Get() < label) + { + outIt.Set(label); + } + ++seqIt; + ++outIt; + } + } // iterator destroyed here + + // recurse if needed + if (itk::Math::abs(i - j) > 2) + { + PixelList regionIDs; + regionIDs.push_back(1); + + int iReq = i < reqRegion.GetIndex(axis) + ? -1 + : (i > reqRegion.GetIndex(axis) + IndexValueType(reqRegion.GetSize(axis)) ? +1 : 0); + int jReq = j < reqRegion.GetIndex(axis) + ? -1 + : (j > reqRegion.GetIndex(axis) + IndexValueType(reqRegion.GetSize(axis)) ? +1 : 0); + int mReq = mid < reqRegion.GetIndex(axis) + ? -1 + : (mid > reqRegion.GetIndex(axis) + IndexValueType(reqRegion.GetSize(axis)) ? +1 : 0); + bool first = itk::Math::abs(i - mid) > 1 && itk::Math::abs(iReq + mReq) <= 1; // i-mid? + bool second = itk::Math::abs(j - mid) > 1 && itk::Math::abs(jReq + mReq) <= 1; // j-mid? + + if (first) + { + Interpolate1to1(axis, out, label, i, mid, iConn, iRegionId, midConn, 1, iTrans, true); + } + if (second) + { + Interpolate1to1(axis, out, label, j, mid, jConn, jRegionId, midConn, 1, jTrans, true); + } + } +} // >::Interpolate1to1 + +template +class MatchesID +{ + typename TImage::PixelType m_ID; + +public: + MatchesID() = default; + MatchesID(typename TImage::PixelType id) + : m_ID(id) + {} + bool + operator!=(const MatchesID & other) + { + return m_ID != other.m_ID; + } + + bool + operator==(const MatchesID & other) + { + return m_ID == other.m_ID; + } + + inline bool + operator()(const typename TImage::PixelType & val) const + { + return val == m_ID; + } +}; + +template +void +MorphologicalContourInterpolator::Interpolate1toN(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + const PixelList & jRegionIds, + const typename SliceType::IndexType & translation) +{ + // first convert iConn into binary mask + MatchesID matchesID(iRegionId); + + using CastType = UnaryFunctorImageFilter>; + typename CastType::Pointer caster = CastType::New(); + caster->SetNumberOfWorkUnits(1); // excessive threading is counterproductive + caster->SetFunctor(matchesID); + caster->SetInput(iConn); + caster->Update(); + typename BoolSliceType::Pointer mask = caster->GetOutput(); + + typename SliceType::RegionType iRegion, jRegion, newjRegion; + iRegion = iConn->GetLargestPossibleRegion(); + jRegion = jConn->GetLargestPossibleRegion(); + newjRegion = jRegion; + newjRegion.SetSize(iRegion.GetSize()); + + // construct n empty images + std::vector blobs; + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + typename BoolSliceType::Pointer temp = BoolSliceType::New(); + temp->CopyInformation(jConn); + temp->SetRegions(iRegion); + temp->Allocate(true); + blobs.push_back(temp); + } + + // fill the n images with intersections - these are seeds + typename SliceType::Pointer belongs = SliceType::New(); + belongs->CopyInformation(mask); + belongs->SetRegions(iRegion); + belongs->Allocate(true); // initialize to zero (false) + ImageRegionIterator belongIt(belongs, iRegion); + IntersectionRegions(translation, iRegion, jRegion); + ImageRegionConstIterator maskIt(mask, iRegion); + ImageRegionConstIteratorWithIndex jIt(jConn, jRegion); + ImageRegionIterator belongInit(belongs, iRegion); + + // convert jConn into n blobs, translating them into the index space of iConn + while (!maskIt.IsAtEnd()) + { + if (maskIt.Get()) + { + typename TImage::PixelType jVal = jIt.Get(); + auto res = std::find(jRegionIds.begin(), jRegionIds.end(), jVal); + if (res != jRegionIds.end()) + { + blobs[res - jRegionIds.begin()]->SetPixel(maskIt.GetIndex(), true); + belongInit.Set(res - jRegionIds.begin() + 1); + } + } + ++maskIt; + ++jIt; + ++belongInit; + } + + // prepare dilation filter + iRegion = iConn->GetLargestPossibleRegion(); // expand to full i image + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + blobs[x]->SetRegions(iRegion); + } + ImageRegionConstIterator maskIt2(mask, iRegion); + ImageRegionConstIteratorWithIndex jIt2(blobs[0], iRegion); + + bool hollowedMaskEmpty; + + do // while hollowed mask is not empty + { + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + blobs[x] = Dilate1(blobs[x], mask); + blobs[x]->DisconnectPipeline(); + } + + hollowedMaskEmpty = true; + maskIt2.GoToBegin(); + jIt2.GoToBegin(); + belongIt.GoToBegin(); + while (!maskIt2.IsAtEnd()) // hollow out the big mask with dilated seeds while avoiding conflicts + { + if (maskIt2.Get()) + { + if (!belongIt.Get()) + { + unsigned x = 0; + while (x < jRegionIds.size()) + { + if (blobs[x]->GetPixel(jIt2.GetIndex())) + { + break; + } + ++x; + } + + if (x < jRegionIds.size()) // covered by a blob, hollow it out + { + belongIt.Set(x + 1); + for (x++; x < jRegionIds.size(); x++) + { + // pixel does not belong to this blob + blobs[x]->SetPixel(jIt2.GetIndex(), false); + } + } + else // keep it + { + hollowedMaskEmpty = false; + } + } + else // the pixel already belongs to some blob + { + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + if (unsigned(belongIt.Get()) != x + 1) + { + // pixel does not belong to this blob + blobs[x]->SetPixel(jIt2.GetIndex(), false); + } + } + } + } + ++maskIt2; + ++jIt2; + ++belongIt; + } + } while (!hollowedMaskEmpty); + + blobs.clear(); // deallocates the images + + // convert the belongs into n Conn-style images + std::vector conns; + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + typename SliceType::Pointer temp2 = SliceType::New(); + temp2->CopyInformation(iConn); + temp2->SetRegions(iConn->GetLargestPossibleRegion()); + temp2->Allocate(true); + conns.push_back(temp2); + } + ImageRegionConstIteratorWithIndex belongIt2(belongs, iRegion); + while (!belongIt2.IsAtEnd()) + { + const typename SliceType::PixelType belong = belongIt2.Get(); + if (belong > 0) + { + conns[belong - 1]->SetPixel(belongIt2.GetIndex(), iRegionId); + } + ++belongIt2; + } + // make n 1-to-1 interpolations + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + Interpolate1to1(axis, out, label, i, j, conns[x], iRegionId, jConn, jRegionIds[x], translation, false); + } +} // >::Interpolate1toN + +template +auto +MorphologicalContourInterpolator::TranslateImage(typename SliceType::Pointer & image, + const typename SliceType::IndexType & translation, + typename SliceType::RegionType newRegion) -> + typename SliceType::Pointer +{ + typename SliceType::Pointer result = SliceType::New(); + result->CopyInformation(image); + result->SetRegions(newRegion); + result->Allocate(true); // initialize to zero (false) + typename SliceType::RegionType inRegion = image->GetLargestPossibleRegion(); + IntersectionRegions(translation, inRegion, newRegion); + ImageAlgorithm::Copy(image.GetPointer(), result.GetPointer(), inRegion, newRegion); + return result; +} + +template +void +MorphologicalContourInterpolator::IntersectionRegions(const typename SliceType::IndexType & translation, + typename SliceType::RegionType & iRegion, + typename SliceType::RegionType & jRegion) +{ + typename SliceType::IndexType iBegin = iRegion.GetIndex(); + typename SliceType::IndexType jBegin = jRegion.GetIndex(); + for (IdentifierType d = 0; d < SliceType::ImageDimension; d++) + { + IndexValueType iSize = iRegion.GetSize(d); + IndexValueType jSize = jRegion.GetSize(d); + iBegin[d] += translation[d]; + IndexValueType t = std::max(iBegin[d], jBegin[d]); + iRegion.SetSize(d, std::min(IndexValueType(iSize) - (t - iBegin[d]), IndexValueType(jSize) - (t - jBegin[d]))); + iRegion.SetIndex(d, t - translation[d]); + jRegion.SetIndex(d, t); + } + jRegion.SetSize(iRegion.GetSize()); // size is the same +} + +template +IdentifierType +MorphologicalContourInterpolator::Intersection(typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + const PixelList & jRegionIds, + const typename SliceType::IndexType & translation) +{ + typename SliceType::RegionType iRegion, jRegion; + iRegion = iConn->GetLargestPossibleRegion(); + jRegion = jConn->GetLargestPossibleRegion(); + IntersectionRegions(translation, iRegion, jRegion); + + std::vector counts(jRegionIds.size()); + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + counts[x] = 0; + } + ImageRegionConstIterator iIt(iConn, iRegion); + ImageRegionConstIterator jIt(jConn, jRegion); + while (!iIt.IsAtEnd()) + { + if (iIt.Get() == iRegionId) + { + typename TImage::PixelType jVal = jIt.Get(); + auto res = std::find(jRegionIds.begin(), jRegionIds.end(), jVal); + if (res != jRegionIds.end()) + { + ++counts[res - jRegionIds.begin()]; + } + } + ++iIt; + ++jIt; + } + + IdentifierType sum = 0; + for (unsigned x = 0; x < jRegionIds.size(); x++) + { + if (counts[x] == 0) + { + return 0; // iConn must intersect all subregions of jConn + } + sum += counts[x]; + } + return sum; +} // >::Intersection + +template +IdentifierType +MorphologicalContourInterpolator::CardinalSymmetricDifference(typename BoolSliceType::Pointer & iShape, + typename BoolSliceType::Pointer & jShape) +{ + typename BoolSliceType::RegionType region = iShape->GetLargestPossibleRegion(); + IdentifierType count = 0; + ImageRegionConstIterator iIt(iShape, region); + ImageRegionConstIterator jIt(jShape, region); + while (!iIt.IsAtEnd()) + { + if (iIt.Get() != jIt.Get()) + { + count++; + } + ++iIt; + ++jIt; + } + + return count; +} + +template +auto +MorphologicalContourInterpolator::Centroid(typename SliceType::Pointer & conn, const PixelList & regionIds) -> + typename SliceType::IndexType +{ + ImageRegionConstIteratorWithIndex it(conn, conn->GetLargestPossibleRegion()); + IndexValueType ind[SliceType::ImageDimension] = { 0 }; // all components are initialized to zero + IdentifierType pixelCount = 0; + while (!it.IsAtEnd()) + { + typename TImage::PixelType val = it.Get(); + if (val) + { + auto res = std::find(regionIds.begin(), regionIds.end(), val); + if (res != regionIds.end()) + { + ++pixelCount; + typename SliceType::IndexType pInd = it.GetIndex(); + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + ind[d] += pInd[d]; + } + } + } + ++it; + } + + typename SliceType::IndexType retVal; + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + retVal[d] = ind[d] / pixelCount; + } + return retVal; +} // >::Centroid + +template +auto +MorphologicalContourInterpolator::Align(typename SliceType::Pointer & iConn, + typename TImage::PixelType iRegionId, + typename SliceType::Pointer & jConn, + const PixelList & jRegionIds) -> typename SliceType::IndexType +{ + // calculate centroids + PixelList iRegionIds; + + iRegionIds.push_back(iRegionId); + typename SliceType::IndexType iCentroid = Centroid(iConn, iRegionIds); + typename SliceType::IndexType jCentroid = Centroid(jConn, jRegionIds); + + typename SliceType::IndexType ind; + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + ind[d] = jCentroid[d] - iCentroid[d]; + } + + // construct an image with all possible translations + typename SliceType::RegionType searchRegion; + typename SliceType::RegionType iLPR = iConn->GetLargestPossibleRegion(); + typename SliceType::RegionType jLPR = jConn->GetLargestPossibleRegion(); + for (IdentifierType d = 0; d < SliceType::ImageDimension; d++) + { + searchRegion.SetIndex(d, jLPR.GetIndex()[d] - iLPR.GetIndex()[d] - iLPR.GetSize(d) + 1); + searchRegion.SetSize(d, iLPR.GetSize(d) + jLPR.GetSize(d) - 1); + } + + typename BoolSliceType::Pointer searched = BoolSliceType::New(); + searched->SetRegions(searchRegion); + searched->Allocate(true); // initialize to zero (false) + + // breadth first search starting from centroid, implicitly: + // when intersection scores are equal, chooses the one closer to centroid + std::queue uncomputed; + typename SliceType::IndexType t0; + t0.Fill(0); + uncomputed.push(t0); // no translation - guaranteed to find a non-zero intersection + uncomputed.push(ind); // this introduces movement, and possibly has the same score + searched->SetPixel(t0, true); + searched->SetPixel(ind, true); + IdentifierType score, maxScore = 0; + typename SliceType::IndexType bestIndex; + IdentifierType iter = 0; + IdentifierType minIter = std::min(m_MinAlignIters, searchRegion.GetNumberOfPixels()); + IdentifierType maxIter = std::max( + m_MaxAlignIters, static_cast(std::sqrt(static_cast(searchRegion.GetNumberOfPixels())))); + + while (!uncomputed.empty()) + { + ind = uncomputed.front(); + uncomputed.pop(); + score = Intersection(iConn, iRegionId, jConn, jRegionIds, ind); + if (score > maxScore) + { + maxScore = score; + bestIndex = ind; + } + + // we breadth this search + if (!m_HeuristicAlignment || maxScore == 0 || iter <= minIter || (score > maxScore * 0.9 && iter <= maxIter)) + { + for (unsigned d = 0; d < SliceType::ImageDimension; d++) + { + ind[d] -= 1; // "left" + if (searchRegion.IsInside(ind) && !searched->GetPixel(ind)) + { + uncomputed.push(ind); + searched->SetPixel(ind, true); + ++iter; + } + ind[d] += 2; // "right" + if (searchRegion.IsInside(ind) && !searched->GetPixel(ind)) + { + uncomputed.push(ind); + searched->SetPixel(ind, true); + ++iter; + } + ind[d] -= 1; // return to initial + } + } + } + + return bestIndex; +} // >::Align + +template +auto +MorphologicalContourInterpolator::RegionedConnectedComponents(const typename TImage::RegionType & region, + typename TImage::PixelType label, + IdentifierType & objectCount) -> + typename SliceType::Pointer +{ + m_RoI->SetExtractionRegion(region); + m_RoI->SetInput(this->GetInput()); + m_Binarizer->SetLowerThreshold(label); + m_Binarizer->SetUpperThreshold(label); + m_ConnectedComponents->Update(); + objectCount = m_ConnectedComponents->GetObjectCount(); + return m_ConnectedComponents->GetOutput(); +} + +template +void +MorphologicalContourInterpolator::InterpolateBetweenTwo(int axis, + TImage * out, + typename TImage::PixelType label, + typename TImage::IndexValueType i, + typename TImage::IndexValueType j, + typename SliceType::Pointer & iconn, + typename SliceType::Pointer & jconn) +{ + // go through comparison image and create correspondence pairs + using PairSet = std::set>; + PairSet pairs, unwantedPairs, uncleanPairs; + typename SliceType::RegionType ri = iconn->GetRequestedRegion(); + typename SliceType::RegionType rj = jconn->GetRequestedRegion(); + ImageRegionConstIterator iti(iconn, ri); + ImageRegionConstIterator itj(jconn, rj); + while (!iti.IsAtEnd()) + { + if (iti.Get() != 0 || itj.Get() != 0) + { + uncleanPairs.insert(std::make_pair(iti.Get(), itj.Get())); + // std::cout << " iti:" << iti.GetIndex() << iti.Get() << + // " itj:" << itj.GetIndex() << itj.Get() << std::endl; + if (iti.Get() != 0 && itj.Get() != 0) + { + unwantedPairs.insert(std::make_pair(0, itj.Get())); + unwantedPairs.insert(std::make_pair(iti.Get(), 0)); + } + } + ++iti; + ++itj; + } + + std::set_difference(uncleanPairs.begin(), + uncleanPairs.end(), + unwantedPairs.begin(), + unwantedPairs.end(), + std::inserter(pairs, pairs.end())); + + // first do extrapolation for components without overlaps + auto p = pairs.begin(); + while (p != pairs.end()) + { + if (p->second == 0) + { + if (m_UseExtrapolation) + { + Extrapolate(axis, out, label, i, j, iconn, p->first); + } + pairs.erase(p++); + } + else if (p->first == 0) + { + if (m_UseExtrapolation) + { + Extrapolate(axis, out, label, j, i, jconn, p->second); + } + pairs.erase(p++); + } + else + { + ++p; + } + } + + // count ocurrances of each component + using CountMap = std::map; + CountMap iCounts, jCounts; + for (p = pairs.begin(); p != pairs.end(); ++p) + { + iCounts[p->first]++; + jCounts[p->second]++; + } + + // now handle 1 to 1 correspondences + p = pairs.begin(); + while (p != pairs.end()) + { + if (iCounts[p->first] == 1 && jCounts[p->second] == 1) + { + PixelList regionIDs; + regionIDs.push_back(p->second); + typename SliceType::IndexType translation = Align(iconn, p->first, jconn, regionIDs); + Interpolate1to1(axis, out, label, i, j, iconn, p->first, jconn, p->second, translation, false); + iCounts.erase(p->first); + jCounts.erase(p->second); + pairs.erase(p++); + } + else + { + ++p; + } + } + + PixelList regionIDs(pairs.size()); // preallocate + // now do 1-to-N and M-to-1 cases + p = pairs.begin(); + while (p != pairs.end()) + { + regionIDs.clear(); + + if (iCounts[p->first] == 1) // M-to-1 + { + for (auto rest = pairs.begin(); rest != pairs.end(); ++rest) + { + if (rest->second == p->second) + { + regionIDs.push_back(rest->first); + } + } + + typename SliceType::IndexType translation = Align(jconn, p->second, iconn, regionIDs); + Interpolate1toN(axis, out, label, j, i, jconn, p->second, iconn, regionIDs, translation); + + auto rest = pairs.begin(); + while (rest != pairs.end()) + { + if (rest != p && rest->second == p->second) + { + --iCounts[rest->first]; + --jCounts[rest->second]; + pairs.erase(rest++); + } + else + { + ++rest; + } + } + + --iCounts[p->first]; + --jCounts[p->second]; + pairs.erase(p++); + } // M-to-1 + else if (jCounts[p->second] == 1) // 1-to-N + { + for (auto rest = pairs.begin(); rest != pairs.end(); ++rest) + { + if (rest->first == p->first) + { + regionIDs.push_back(rest->second); + } + } + + typename SliceType::IndexType translation = Align(iconn, p->first, jconn, regionIDs); + Interpolate1toN(axis, out, label, i, j, iconn, p->first, jconn, regionIDs, translation); + + auto rest = pairs.begin(); + ++rest; + while (rest != pairs.end()) + { + if (rest != p && rest->first == p->first) + { + --iCounts[rest->first]; + --jCounts[rest->second]; + pairs.erase(rest++); + } + else + { + ++rest; + } + } + + --iCounts[p->first]; + --jCounts[p->second]; + pairs.erase(p++); + } // 1-to-N + else + { + ++p; + } + } // 1-to-N and M-to-1 + + // only M-to-N correspondences remain + // we turn each M-to-N case into m 1-to-N cases + p = pairs.begin(); + while (p != pairs.end()) + { + regionIDs.clear(); + for (auto rest = p; rest != pairs.end(); ++rest) + { + if (rest->first == p->first) + { + regionIDs.push_back(rest->second); + } + } + + typename SliceType::IndexType translation = Align(iconn, p->first, jconn, regionIDs); + Interpolate1toN(axis, out, label, i, j, iconn, p->first, jconn, regionIDs, translation); + + auto rest = p; + ++rest; + while (rest != pairs.end()) + { + if (rest->first == p->first) + { + pairs.erase(rest++); + } + else + { + ++rest; + } + } + + // counts no longer matter, do not waste time deleting them + pairs.erase(p++); + } // M-to-N +} // void MorphologicalContourInterpolator::InterpolateBetweenTwo() + +template +void +MorphologicalContourInterpolator::InterpolateAlong(int axis, + TImage * out, + float startProgress, + float endProgress) +{ + // a list of segments which need to be interpolated + std::vector> segments; + typename TImage::RegionType reqRegion = this->GetOutput()->GetRequestedRegion(); + for (typename LabeledSlicesType::iterator it = m_LabeledSlices[axis].begin(); it != m_LabeledSlices[axis].end(); ++it) + { + if (m_Label == 0 || m_Label == it->first) // label needs to be interpolated + { + auto prev = it->second.begin(); + if (prev == it->second.end()) + { + continue; // nothing to do for this label + } + + typename TImage::RegionType ri = reqRegion; + if (!m_UseCustomSlicePositions) + { + typename BoundingBoxesType::iterator iBB = m_BoundingBoxes.find(it->first); + if (iBB == m_BoundingBoxes.end()) + { + continue; // this label not present in requested region + } + else + { + ri = iBB->second; + } + } + ri.SetSize(axis, 0); + ri.SetIndex(axis, *prev); + IdentifierType xCount; + typename SliceType::Pointer iconn = this->RegionedConnectedComponents(ri, it->first, xCount); + iconn->DisconnectPipeline(); + int iReq = *prev < reqRegion.GetIndex(axis) + ? -1 + : (*prev > reqRegion.GetIndex(axis) + IndexValueType(reqRegion.GetSize(axis)) ? +1 : 0); + + auto next = it->second.begin(); + for (++next; next != it->second.end(); ++next) + { + typename TImage::RegionType rj = ri; + rj.SetIndex(axis, *next); + typename SliceType::Pointer jconn = this->RegionedConnectedComponents(rj, it->first, xCount); + jconn->DisconnectPipeline(); + int jReq = *next < reqRegion.GetIndex(axis) + ? -1 + : (*next > reqRegion.GetIndex(axis) + IndexValueType(reqRegion.GetSize(axis)) ? +1 : 0); + + if (*prev + 1 < *next // only if they are not adjacent slices + && itk::Math::abs(iReq + jReq) <= 1) // and not out of the requested region + // unless they are on opposite ends + { + SegmentBetweenTwo s; + s.axis = axis; + s.out = out; + s.label = it->first; + s.i = *prev; + s.j = *next; + s.iconn = iconn; + s.jconn = jconn; + segments.push_back(s); + } + iconn = jconn; + iReq = jReq; + prev = next; + } + } + } + + ProgressTransformer pt(startProgress, endProgress, this); + MultiThreaderBase * mt = this->GetMultiThreader(); + mt->ParallelizeArray( + 0, + segments.size(), + [&](SizeValueType ii) { + this->InterpolateBetweenTwo(segments[ii].axis, + segments[ii].out, + segments[ii].label, + segments[ii].i, + segments[ii].j, + segments[ii].iconn, + segments[ii].jconn); + }, + pt.GetProcessObject()); + +} // >::InterpolateAlong + +template +void +MorphologicalContourInterpolator::AllocateOutputs() +{ + using ImageBaseType = ImageBase; + typename ImageBaseType::Pointer outputPtr; + + for (OutputDataObjectIterator it(this); !it.IsAtEnd(); it++) + { + outputPtr = dynamic_cast(it.GetOutput()); + if (outputPtr) + { + outputPtr->SetBufferedRegion(outputPtr->GetRequestedRegion()); + outputPtr->Allocate(true); + } + } +} + +template +void +MorphologicalContourInterpolator::GenerateData() +{ + typename TImage::ConstPointer m_Input = this->GetInput(); + typename TImage::Pointer m_Output = this->GetOutput(); + this->AllocateOutputs(); + + if (m_UseCustomSlicePositions) + { + SliceIndicesType t = m_LabeledSlices; + this->DetermineSliceOrientations(); // calculates bounding boxes + m_LabeledSlices = t; // restore custom positions + } + else + { + this->DetermineSliceOrientations(); + } + + if (m_BoundingBoxes.empty() && !m_UseCustomSlicePositions) + { + ImageAlgorithm::Copy( + m_Input.GetPointer(), m_Output.GetPointer(), m_Output->GetRequestedRegion(), m_Output->GetRequestedRegion()); + return; // no contours detected + } + + if (m_Axis == -1) // interpolate along all axes + { + FixedArray aggregate; + aggregate.Fill(false); + for (unsigned i = 0; i < TImage::ImageDimension; i++) + { + if (this->m_Label == 0) // examine all labels + { + for (unsigned l = 0; l < m_LabeledSlices[i].size(); l++) + { + if (m_LabeledSlices[i][l].size() > 1) + { + aggregate[i] = true; + } + } + } + else // we only care about this label + { + if (m_LabeledSlices[i][m_Label].size() > 1) + { + aggregate[i] = true; + } + } + } + + for (unsigned int a = 0; a < TImage::ImageDimension; ++a) + { + if (aggregate[a]) + { + this->InterpolateAlong(a, m_Output, a / float(TImage::ImageDimension), (a + 1) / float(TImage::ImageDimension)); + } + } + } // interpolate along all axes + else // interpolate along the specified axis + { + this->InterpolateAlong(m_Axis, m_Output, 0.0f, 1.0f); + } + + // Overwrites m_Output with non-zeroes from m_Input + ImageRegionIterator itO(this->GetOutput(), this->GetOutput()->GetBufferedRegion()); + ImageRegionConstIterator itI(this->GetInput(), this->GetOutput()->GetBufferedRegion()); + while (!itI.IsAtEnd()) + { + typename TImage::PixelType val = itI.Get(); + if (val != 0) + { + itO.Set(val); + } + + ++itI; + ++itO; + } +} // >::GenerateData +} // end namespace itk + +#endif // itkMorphologicalContourInterpolator_hxx diff --git a/Modules/Filtering/MorphologicalContourInterpolation/itk-module.cmake b/Modules/Filtering/MorphologicalContourInterpolation/itk-module.cmake new file mode 100644 index 000000000000..90ad9cda8f9f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/itk-module.cmake @@ -0,0 +1,19 @@ +set( + DOCUMENTATION + "The modules provides filters to do interpolation +of manually segmented anatomical contours. +Enabling testing requires RLEImage module to be enabled." +) + +itk_module( + MorphologicalContourInterpolation + ENABLE_SHARED + DEPENDS + ITKBinaryMathematicalMorphology + ITKDistanceMap + TEST_DEPENDS + ITKTestKernel + RLEImage + EXCLUDE_FROM_DEFAULT + DESCRIPTION "${DOCUMENTATION}" +) diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B.nii.gz.cid new file mode 100644 index 000000000000..d53ef8ff823e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B.nii.gz.cid @@ -0,0 +1 @@ +bafkreib2jcz776zhw246jch4abaify6g6xhegiglyhzacenxi73tbijuxu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_0.nii.gz.cid new file mode 100644 index 000000000000..d53ef8ff823e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreib2jcz776zhw246jch4abaify6g6xhegiglyhzacenxi73tbijuxu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_1.nii.gz.cid new file mode 100644 index 000000000000..05f53d9f99a6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreie5rjefu5alxj75kuc6yshojnvea3a6xx56b7fwn2zwnfmnnkktza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_2.nii.gz.cid new file mode 100644 index 000000000000..4eba12c9706e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_-1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicbzygx3waytmendyxbzwbxhzfgsnchv2b7xj5cztden7sxcaylqq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2.nii.gz.cid new file mode 100644 index 000000000000..1d231d24f43c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiegfn75ity27zdkx2yndoi55yefu6x4p74m3azzzd6d4ykf2lp7du diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2_1.nii.gz.cid new file mode 100644 index 000000000000..05f53d9f99a6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreie5rjefu5alxj75kuc6yshojnvea3a6xx56b7fwn2zwnfmnnkktza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2_2.nii.gz.cid new file mode 100644 index 000000000000..4eba12c9706e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_B_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicbzygx3waytmendyxbzwbxhzfgsnchv2b7xj5cztden7sxcaylqq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C.nii.gz.cid new file mode 100644 index 000000000000..82e462fda6e3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C.nii.gz.cid @@ -0,0 +1 @@ +bafkreifawaf6rd7s6fcs3w7qgbuks4y4hkegdoatafa7xsjyvcy63glq64 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_0.nii.gz.cid new file mode 100644 index 000000000000..86e9f2a1a4a8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreieedr4d4lcq7gyu4bpiyvdut7jnxfc2bfmnww7ow66fr7jdywawke diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_1.nii.gz.cid new file mode 100644 index 000000000000..e7715973b3c2 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreienpxy7g6vdvyla6epgbtvqh4v6g2m23w2wsrvriflyjf6uaw4wzm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_2.nii.gz.cid new file mode 100644 index 000000000000..b69c9daebf01 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_-1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicwimc4mo3rx7zvcnjydel2ifhjqct5zk2245zyvdervnqpru57cu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2.nii.gz.cid new file mode 100644 index 000000000000..ac5dbd4770f5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreidb4tbyslkhi3x6zt4dfyeuqil45sl2ko2fkilcfr4hxidztcqwd4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2_1.nii.gz.cid new file mode 100644 index 000000000000..e7715973b3c2 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreienpxy7g6vdvyla6epgbtvqh4v6g2m23w2wsrvriflyjf6uaw4wzm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2_2.nii.gz.cid new file mode 100644 index 000000000000..b69c9daebf01 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_C_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicwimc4mo3rx7zvcnjydel2ifhjqct5zk2245zyvdervnqpru57cu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T.nii.gz.cid new file mode 100644 index 000000000000..f34b6034e9f0 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T.nii.gz.cid @@ -0,0 +1 @@ +bafkreihbhte4tuc33pbcqhqwxcfrnzm5zipgufnmt4f5qptnojzx37duxq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_0.nii.gz.cid new file mode 100644 index 000000000000..0502d881c441 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreiauix3jdn6owhtbdkymlhmjsclcrm4e537kt767luvoumcloxa4x4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_1.nii.gz.cid new file mode 100644 index 000000000000..05774f9f8fc7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreienok77le54vgstyji2xs4x4zxw47qyiacqczh2mqrjiczktyqk4y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_2.nii.gz.cid new file mode 100644 index 000000000000..5b033d945af4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_-1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigp7ozfbjdk6uqlufme3owtgvn6yfzuzrwbd4d2pyqfi73hceqbmy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2.nii.gz.cid new file mode 100644 index 000000000000..29b7773fe8dc --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibneabxjvkjcpo6dm7pruplhzrm52nkvo7m3hoxq6aegrfavyj4eu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2_1.nii.gz.cid new file mode 100644 index 000000000000..05774f9f8fc7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreienok77le54vgstyji2xs4x4zxw47qyiacqczh2mqrjiczktyqk4y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2_2.nii.gz.cid new file mode 100644 index 000000000000..5b033d945af4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769fixed_T_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigp7ozfbjdk6uqlufme3owtgvn6yfzuzrwbd4d2pyqfi73hceqbmy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B.nii.gz.cid new file mode 100644 index 000000000000..d1420e1c26b3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B.nii.gz.cid @@ -0,0 +1 @@ +bafkreick7vd27d3tqztjvn7b422wysowiixvlrj3qxkq5xop2bnyqwnaw4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_0.nii.gz.cid new file mode 100644 index 000000000000..d1420e1c26b3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreick7vd27d3tqztjvn7b422wysowiixvlrj3qxkq5xop2bnyqwnaw4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_1.nii.gz.cid new file mode 100644 index 000000000000..fcba6b9ca577 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihtouenwpxijosuov7aknvfa2uuqut7yo7vx5pyl3gtvuwllx5fx4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_2.nii.gz.cid new file mode 100644 index 000000000000..f8f1f13b562f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_-1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibaqdsltucrcswvc4nu7uie45l6vlsqmfl2urs2kdb3a6rbs2nlr4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2.nii.gz.cid new file mode 100644 index 000000000000..d1420e1c26b3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreick7vd27d3tqztjvn7b422wysowiixvlrj3qxkq5xop2bnyqwnaw4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2_1.nii.gz.cid new file mode 100644 index 000000000000..fcba6b9ca577 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihtouenwpxijosuov7aknvfa2uuqut7yo7vx5pyl3gtvuwllx5fx4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2_2.nii.gz.cid new file mode 100644 index 000000000000..f8f1f13b562f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_B_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibaqdsltucrcswvc4nu7uie45l6vlsqmfl2urs2kdb3a6rbs2nlr4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C.nii.gz.cid new file mode 100644 index 000000000000..d6f4ddda44e8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C.nii.gz.cid @@ -0,0 +1 @@ +bafkreiadetsay5ond5mc3wztuhqh7ofs5eqsz5uet4unkj5eokmv7mv74u diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_0.nii.gz.cid new file mode 100644 index 000000000000..1e88813aa74f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreigwcgq3p5maiysin5zn52phmbjaphflkqxqrrlvkgy4tnqbgepfki diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_1.nii.gz.cid new file mode 100644 index 000000000000..d5a8a9f3fc7b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreib5mglhwfbvvssya6q2u3ek36xu3ki4ivlfltu5qgfzalpebdbtnq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_2.nii.gz.cid new file mode 100644 index 000000000000..408b773ef2e3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_-1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreih3vmsfphofyzgwru7gyyyyh3cr7qymijkijcizml7ynjwcwi2mji diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2.nii.gz.cid new file mode 100644 index 000000000000..1e88813aa74f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigwcgq3p5maiysin5zn52phmbjaphflkqxqrrlvkgy4tnqbgepfki diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2_1.nii.gz.cid new file mode 100644 index 000000000000..d5a8a9f3fc7b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreib5mglhwfbvvssya6q2u3ek36xu3ki4ivlfltu5qgfzalpebdbtnq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2_2.nii.gz.cid new file mode 100644 index 000000000000..408b773ef2e3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_C_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreih3vmsfphofyzgwru7gyyyyh3cr7qymijkijcizml7ynjwcwi2mji diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T.nii.gz.cid new file mode 100644 index 000000000000..071b32f35141 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T.nii.gz.cid @@ -0,0 +1 @@ +bafkreigr5y354mt6hshhd3ag66qdsnsd3tfcu24rubcpi7oftrxlee2gii diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_0.nii.gz.cid new file mode 100644 index 000000000000..cf2ba55601f3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreibfszfgtv6tluaast6xdfqjq3ej4j6qdpisp5e6uu6jrzby5xzedm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_1.nii.gz.cid new file mode 100644 index 000000000000..dc66384d93e6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreifolqlsllslhfpcxlvu6tukjrqqk2v6n56vdipyzeiuy2epzb7sgq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_2.nii.gz.cid new file mode 100644 index 000000000000..aadbcf9f75db --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_-1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigpdpn7wbnxq7zlezhusn7omxqo3r5zdeqecm655i2jmpwnsc4ysy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2.nii.gz.cid new file mode 100644 index 000000000000..64ce8af64b91 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibkcduq7ryybrldbocahhdcwxmwkketp6f3mnjvj6hucrindpvzre diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2_1.nii.gz.cid new file mode 100644 index 000000000000..dc66384d93e6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreifolqlsllslhfpcxlvu6tukjrqqk2v6n56vdipyzeiuy2epzb7sgq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2_2.nii.gz.cid new file mode 100644 index 000000000000..aadbcf9f75db --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/105769moving_T_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigpdpn7wbnxq7zlezhusn7omxqo3r5zdeqecm655i2jmpwnsc4ysy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_B.nrrd.cid new file mode 100644 index 000000000000..7b9a7b29838e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_B.nrrd.cid @@ -0,0 +1 @@ +bafkreihj3yutrrpirztddw7gy3tom2iorjilfqiw3dotwjjvsrquszzzzy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_C.nrrd.cid new file mode 100644 index 000000000000..b86536331f51 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_C.nrrd.cid @@ -0,0 +1 @@ +bafkreigmpniwa7xbzok2bc4rgkec7usmrvymz2a5wupsoouz5tcfwrl56y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_T.nrrd.cid new file mode 100644 index 000000000000..b4d9db659ac8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/1MN1_T.nrrd.cid @@ -0,0 +1 @@ +bafkreicme2x4jobsy6jsa6675si7aretyevs3lg4iauje4jy67qkukrizy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B.nii.gz.cid new file mode 100644 index 000000000000..d31f2507249e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B.nii.gz.cid @@ -0,0 +1 @@ +bafkreib5witrs3cvmcfe4ywniufyz37xukyaj3z6x4vhyaws3vnt7aejea diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0.nii.gz.cid new file mode 100644 index 000000000000..a8630e4352dd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreicqpcgued34bu3t4pte4ubbwltwgp2djut7t323ab4xo3wxmgupny diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_1.nii.gz.cid new file mode 100644 index 000000000000..90397104e3f4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreifbb7egovjoxvtskuivqjfiemydld72wns2jrxzdke7nagwzcyhae diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_2.nii.gz.cid new file mode 100644 index 000000000000..9b4b5209fe60 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreih5b43qc7vsuzpqh6hkit34lddigcbqpfolxxmrynki6bzsggwsqu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_3.nii.gz.cid new file mode 100644 index 000000000000..533aee20c76b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreifq6j524cu2syfcta2footewh4r5bhcf6hwymiielshvop2tpeg4u diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_4.nii.gz.cid new file mode 100644 index 000000000000..8bf7ed88c266 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreieuxc3dkvpefsu4e5epx2bjwlzh7xrfpsycjgjkvq7wndrrii6m2q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1.nii.gz.cid new file mode 100644 index 000000000000..d1215111ccb7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihac6xf6ywgxkl2hmbrgb6yqhypmvvepph5tjm2o2jwp7yaewlsoe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_1.nii.gz.cid new file mode 100644 index 000000000000..d52c54f26bb4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiellyf23b3ur4xy7dcmj226hrvdvntqpt4r74mallzhp7cr5vdsb4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_2.nii.gz.cid new file mode 100644 index 000000000000..c4858644f840 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreihnaess45tk3a3mlsvolqv3mhzdztur7kgppfaespq4ye66xhkcfy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_3.nii.gz.cid new file mode 100644 index 000000000000..91cd2b0efce5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreib6p44xp65l4gsnnytow6rt6nbgol5xjgsq4zqiuuxxzho32n5y6u diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_4.nii.gz.cid new file mode 100644 index 000000000000..ed2911c4974c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreibeafrbqb6qdooeh25emapfurejyceksvu72s2mtt6nltxjl5ffui diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2.nii.gz.cid new file mode 100644 index 000000000000..26b57b267af0 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiejwlgq7h4qonyg5cjyczba3fs3nv2vrzmenu44jp5lctjl2dijxa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_1.nii.gz.cid new file mode 100644 index 000000000000..a2ac83ac2e6a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreieebdvocum44klwrsqz7w7dxsxb3eoo4tetej2vff2texvd4szmym diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_2.nii.gz.cid new file mode 100644 index 000000000000..3b912eddd0ab --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreieeosqjiy3riiylfmpy743avd6osdfrceu6a7ti2asqnnxvl5m2ne diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_3.nii.gz.cid new file mode 100644 index 000000000000..9a1574431d8c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreiedneiiutp6ukexjgpchfcr5xq222w4snevtsedcavg34ajcde4e4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_4.nii.gz.cid new file mode 100644 index 000000000000..fd4265bd9a11 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_B_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreicul4wtpvop5ikc4su5wprnhymdf7u2bfslwy5a6c7qvodcskszki diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C.nii.gz.cid new file mode 100644 index 000000000000..f488c1c60abf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C.nii.gz.cid @@ -0,0 +1 @@ +bafkreiexgkbeady7sxlphwa2gokjfwnmalbiawxxbq44xig3kkh4bddtom diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0.nii.gz.cid new file mode 100644 index 000000000000..1f067e7e2f9a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreicnssyeys7vy5utjynfya7duttscnqew7dsd2jkdlthzrzqmx3xqa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_1.nii.gz.cid new file mode 100644 index 000000000000..84572fa99cb9 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreib366rx4uquyeoty2ounjk3ow6bkd5obuxqtjihztp6c4z6th7sy4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_2.nii.gz.cid new file mode 100644 index 000000000000..257354610161 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreig3twfliw3yti5hsm5jvqq56uwamrarw4tfr3egpkyuuz2k5e5ire diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_3.nii.gz.cid new file mode 100644 index 000000000000..878aba0c62e8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreihpldgp3laozgry65zteh74m3wkxve3paaj6ouiip5k4ihqmegbk4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_4.nii.gz.cid new file mode 100644 index 000000000000..079a31fe83b1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreicxfuvkykf5fd5h4taaiyks7hzs2qmmrtk7oa24q7np244y42pzqa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1.nii.gz.cid new file mode 100644 index 000000000000..4acb8edfdcd8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiconcxrkfewyvso5ylo5slnvcssakgby3q5xmeizmckh46bmg3tra diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_1.nii.gz.cid new file mode 100644 index 000000000000..1a743bc1118d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiftnc2rjx6z7gsfmu2f4insbe27ruoel6hnlg2itlqpg7xeatydyu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_2.nii.gz.cid new file mode 100644 index 000000000000..2f732f82c080 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreihioixoru4olbhqykllcqa7qrshczdy7pw2nrhveugmpr2hrv6nra diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_3.nii.gz.cid new file mode 100644 index 000000000000..e82a345f4c48 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreibbnancaas2oo27tz2t6mvffsmpm4t4vvdbhohzpmjoaut55ozjci diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_4.nii.gz.cid new file mode 100644 index 000000000000..b84d7538d26a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiewt6nnr2k7tyecbt7fyuktre3a7ibs3sklq4jbztk65oecev6xqq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2.nii.gz.cid new file mode 100644 index 000000000000..5f5d5fb4d227 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreifq4mhrkifuw2groqje34u5biybke5qzyuojnv7km2bzobossguyy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_1.nii.gz.cid new file mode 100644 index 000000000000..9ef9897b316e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiabgs5miyonncy47el3femzjmqsp4b23sixgf63jqjtwyifziynqa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_2.nii.gz.cid new file mode 100644 index 000000000000..28db17a8c3b8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicaelil6h4kcct7z5gq5qc24akiedjvmfsxiq3pdcll55wrp5dieq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_3.nii.gz.cid new file mode 100644 index 000000000000..201c4bf16fc6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreic4clirrxgudzyurxktaeizjmxoppgh46qtqgcs6lpo5vfvz4ojuy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_4.nii.gz.cid new file mode 100644 index 000000000000..c11d5150d55a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_C_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreidwjg7sl5pxfstyabs2l6hur3vt4ulga6hlczxtanprprmb4jiwbq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T.nii.gz.cid new file mode 100644 index 000000000000..713fc84ada40 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T.nii.gz.cid @@ -0,0 +1 @@ +bafkreihjuu2b2pkwopc364r3e36fvmb37oeik3ui5o6fkydv44jkrqzkhi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0.nii.gz.cid new file mode 100644 index 000000000000..d3e925e94522 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreifqlqqovvnycpf7di7arkw6jrep4ygd3ejbcmcqwzwfmth7apdrhe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_1.nii.gz.cid new file mode 100644 index 000000000000..28453aca2102 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreia4oky3hi4xsj36wktxa2qhdjei7cphxknaqdwjjmz2uwgkvpai7a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_2.nii.gz.cid new file mode 100644 index 000000000000..dacab71d01f7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicqcxtzpilsetth4zhqaexb6i2g5v4xgput476xsqb2yzhzhnapsm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_3.nii.gz.cid new file mode 100644 index 000000000000..1c34c0f6004c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreihutlxvjqa7y7bouh4mhcg4wugzjl3ovyzecxxqnhkwy6jfmfb27a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_4.nii.gz.cid new file mode 100644 index 000000000000..728d976ebcea --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreifw4fg56spyf3u3jw2aikmanv3fpjwwyldpkjjhz5zezbwhqb3mpq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1.nii.gz.cid new file mode 100644 index 000000000000..f780b5f9cb14 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreig7fxwyrirqzeqn6oknanwtkfsopydlea7gwwiavlotdywdstjaki diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_1.nii.gz.cid new file mode 100644 index 000000000000..41c21b7353e8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreigxkwx6xsteosacszpesejmce32jg77s5wlgpkdu6x4yfblnonfsa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_2.nii.gz.cid new file mode 100644 index 000000000000..27f5f943d9f7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreifzwpsngswtuc2yri3uvzindgjonbfp6tibfjcml3gqvulbupkyy4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_3.nii.gz.cid new file mode 100644 index 000000000000..7485ed066853 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreigzwymb4eau5vq4gnwahkwjwauolm3dnzk34dmjdz2ccgb772zlpy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_4.nii.gz.cid new file mode 100644 index 000000000000..1067d1f3a4cf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreibhrcazbvlleggofvpn4tfc4r6n7lgnrill3ulwdjfd6xb74j3pvu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2.nii.gz.cid new file mode 100644 index 000000000000..caa501f13e33 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicxvej24b6yvk3oqfsnkcgj723qergzrq5ykpaommk2iuwbydflsa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_1.nii.gz.cid new file mode 100644 index 000000000000..100209370571 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiaxjae3cgszrxsr2hsm4wrvblk7f5ci5mlujdwanp6kzw5syfnoga diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_2.nii.gz.cid new file mode 100644 index 000000000000..25505458e363 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreifv63jxdubga6jdmakf3wj3db22sj37o6pplfmcl4hx7howu4vo5y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_3.nii.gz.cid new file mode 100644 index 000000000000..b3adcea6438e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreih4bsjpqkvdbnnw5nydmig6qlmyxfaomymku4vuhkc646253w7zpe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_4.nii.gz.cid new file mode 100644 index 000000000000..3c1d4476b047 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_fin_T_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreigakikoljd5kpfw26lu73n62rxfvx6hodgq7xehi5lhsa4l2jb3hu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B.nii.gz.cid new file mode 100644 index 000000000000..21a8137a73e7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B.nii.gz.cid @@ -0,0 +1 @@ +bafkreidod4atkopejsyqivziwskc6r5zd25vce3iavjkpuuewsqzypdoum diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0.nii.gz.cid new file mode 100644 index 000000000000..99b2b802a400 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreibznmtg4u3q5jiexek4m2r2incfq7rpmobbhqdexuz3abwnwc7hoy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_1.nii.gz.cid new file mode 100644 index 000000000000..6e25e9429c50 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibq3jmv6gmh7fnafpl74gkoq3onlck6msie2ldkagt6sl6uyjgp7q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_2.nii.gz.cid new file mode 100644 index 000000000000..26b7ef207769 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreih43mxh5wyrytgbsksvhq56kh7xzp4san7v77kmid6dyuw5rcz74m diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_3.nii.gz.cid new file mode 100644 index 000000000000..197df20a9bac --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreigbh4hlacy3kq26cnppdun27qlwoykokwnxl3xvvzt7mauebveum4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_4.nii.gz.cid new file mode 100644 index 000000000000..16d8e486ebfb --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreif25tisqmeravhhfx2o26lmv46yfruf5tfkwtkjlw7lgbs6c7qwfy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1.nii.gz.cid new file mode 100644 index 000000000000..61398ff66c0a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiftizdoemxlyq2dmimeets27o3kwiunvnjh4x36u3sxsoor6wwc6q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_1.nii.gz.cid new file mode 100644 index 000000000000..0ba0feedd395 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihxvmmysywkvrqxqzlbrzln3poq2z6zslenpgl3siwzftm3bdqusm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_2.nii.gz.cid new file mode 100644 index 000000000000..54d3220ed541 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibvt4sa72j3ttv4ruasdlug3uuis244zdz2pehy7mbzojisnbyley diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_3.nii.gz.cid new file mode 100644 index 000000000000..ae11fd2ff424 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreib62lptgbucdfq4rhpk2qaombrv7p4tnnqazcbawpu6ltwdfiidmi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_4.nii.gz.cid new file mode 100644 index 000000000000..84c61ad2ae8b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreibjnelbep5zq6srucq5joccgef4o6xswoykblmdfkfqvhpeh6xtb4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2.nii.gz.cid new file mode 100644 index 000000000000..b4f786976cf7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiaw5s6srb2o6gv4zlg6bxa7s53vinsdw6gzhmu5lc7tpkzhu4lyom diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_1.nii.gz.cid new file mode 100644 index 000000000000..232e9af7387c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihx2wwvbfb2l7k3nchwc57bzup5oebh7gysy3rsewu7vuumkn6xrm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_2.nii.gz.cid new file mode 100644 index 000000000000..8a57a09b9e08 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreihjo4mlnqontrgofz6lomt6gzikqcxkdgral6fjkvlauugw2uh5re diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_3.nii.gz.cid new file mode 100644 index 000000000000..cda78899b5cd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreihoumhzarh65yzx6qtjrfvkhs76io54jexou4prkaq4au3ui5etwy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_4.nii.gz.cid new file mode 100644 index 000000000000..7f0d49a23ed3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_B_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreibodshyxmnqz5zct2t7bmzjqiar2rfliqzsgp6hwufw3bsdottydm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C.nii.gz.cid new file mode 100644 index 000000000000..a4e6b54beea5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C.nii.gz.cid @@ -0,0 +1 @@ +bafkreigh7aimrfmmofjdbg6qaq7n7isrf6v423cdbcmmyhzrd372affnny diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0.nii.gz.cid new file mode 100644 index 000000000000..06a70ea9b58f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreicwafxpe6qtjin6v4eohxzwknfpmwnycsregisgzv62wuaz72d43q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_1.nii.gz.cid new file mode 100644 index 000000000000..53127bf93c4d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreidxum73wmh7zbcbdqwxvapj5qs3zegzi5l4srolfjma5pvt7z72km diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_2.nii.gz.cid new file mode 100644 index 000000000000..f064f2b81555 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigquaokemlop2w2wjyrx6l63elim2ogftjom5fyl4ioaqfkis2hty diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_3.nii.gz.cid new file mode 100644 index 000000000000..c2d212ad0f99 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreigherxqiko2xthvdlzj7k5yrynfuunutjh3gob2lpajrpv52d7vmi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_4.nii.gz.cid new file mode 100644 index 000000000000..4cf10e5def33 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreifa5k3dpamyqw33mnwylbiaf3npjzxr2wke3jikhb5ohc3ynv3myi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1.nii.gz.cid new file mode 100644 index 000000000000..b54ca5bd0d57 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibpqd4h5zowhegr3p6aeu7bsc5eecgi5ggeajdv4sjcgmf5sss7lq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_1.nii.gz.cid new file mode 100644 index 000000000000..599686efb3df --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihtj3bd3azeksqyhsxzv6a2xkw7qtt6t2jw2zmwqlv4pgixobrgte diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_2.nii.gz.cid new file mode 100644 index 000000000000..703e432f4f8f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreihsxbrspcdhxjrrgty6npvrniahxs2uegl73j3tsbzettahjrku5y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_3.nii.gz.cid new file mode 100644 index 000000000000..623a5e44b946 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreibh422oxuwa5gf6nheessxgf3b4goqhleip4mu3xuicsew6iczj74 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_4.nii.gz.cid new file mode 100644 index 000000000000..5ee7e5ee60c1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiexz5z6xse3e6vkdpctslizl5bbwuhmtjepop7jetva3wfgsvlcqu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2.nii.gz.cid new file mode 100644 index 000000000000..942486bf885e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreihejbmx7aojuu7pa66jf3uy633c6svpi24wcwaghwfv45rioymuxy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_1.nii.gz.cid new file mode 100644 index 000000000000..7cae2bbc17a7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreidxykiiqw2zehgkf6s3h3iszueppvhi7m2oe5kxus64aibjtoflba diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_2.nii.gz.cid new file mode 100644 index 000000000000..96a2881c3603 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicjum3twatgbn4ieathsv3fzpjrizvfngqxwuyd5l22v5ao6ezyy4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_3.nii.gz.cid new file mode 100644 index 000000000000..c667f4802ca7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreiccitd3en7szh4slcpq4grlto5ulbp7itcpugic5cnoqkerpmjg5q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_4.nii.gz.cid new file mode 100644 index 000000000000..a668e9ae8134 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_C_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreihaewvuzytcyrbbuschfucqkmh6gwg4r4hkpe4kurvdmw56g7zroi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T.nii.gz.cid new file mode 100644 index 000000000000..de64a84c2f6a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T.nii.gz.cid @@ -0,0 +1 @@ +bafkreihqo3tivmwjl5rxir76xtjdxeaunjs4divh3p47cjwyjujunerx7q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0.nii.gz.cid new file mode 100644 index 000000000000..08c4f1f9de80 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreida3wgll7cwq7ad77lrghrhqxq7gldqquwcigbw7ht2r4v2b6i3ly diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_1.nii.gz.cid new file mode 100644 index 000000000000..ef686cef7f6f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreig3ckgpdo2uovrhwvvcmg4tjkqdaaqy4tr6idymg56mrwts2yuaby diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_2.nii.gz.cid new file mode 100644 index 000000000000..29fcb37a0e42 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicmtuhj7t343jce2rwbc2flk74ppixrf4s2sli3vyzxf6n4jtbuza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_3.nii.gz.cid new file mode 100644 index 000000000000..1ab345b25cb1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreihg46n5a6pwc3hv55446yzpnf456waluh7wenukz7dcisz6isttye diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_4.nii.gz.cid new file mode 100644 index 000000000000..130b72bb6819 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreifgb6yp7wx3y42uacgzu5cgqk65wfaeyukgfys4lqfy5hl2lykjpm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1.nii.gz.cid new file mode 100644 index 000000000000..66507560bbb6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreietjkz2xf3fngb4crkhfvkpdlhsu43qgdklxpx44zh6gkiernyqt4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_1.nii.gz.cid new file mode 100644 index 000000000000..32c2733434c0 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreigi3iaacbger5jgtpubwj7hh2beupszwtekqeowobrcdkgdiet3ta diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_2.nii.gz.cid new file mode 100644 index 000000000000..84058f56f69b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreib6ielb3y5e2q27qkazjnioy4fix5qrsxup7ba3llxkfvdugfdmf4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_3.nii.gz.cid new file mode 100644 index 000000000000..7f9cba36d4ab --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreidap2njuj4zk33q2mvzkufry2jjvajo7aopkvzyzpantiwyiu6dcq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_4.nii.gz.cid new file mode 100644 index 000000000000..c1de464de8a5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreihkejmaecsv445maxpb7f5uyq7ctl6es5jy5qhlpwtzpyqs6b3g3i diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2.nii.gz.cid new file mode 100644 index 000000000000..ecdd3ec3c6e3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigpke6maapdx4ajr5vnmwboyllb45mrslgyuhk6lhnyb7m3okqeri diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_1.nii.gz.cid new file mode 100644 index 000000000000..aaead1c6598a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreifiolaefwsrtepim7elhvaxu2i6xbxsormy6odzy4lae5uxhinv64 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_2.nii.gz.cid new file mode 100644 index 000000000000..aa96e31390e6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigvta3bcqioshghvfsezjm2vmydvgn3ykoqykoyfou27x245p2wfe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_3.nii.gz.cid new file mode 100644 index 000000000000..5a17bfa018cd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreibglz5ya46ynon5dhm5sbw5kqrzol45s52kxe2hmmryno2ypri4ja diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_4.nii.gz.cid new file mode 100644 index 000000000000..df0eced0efa9 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/64816L_amygdala_int_T_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreihlwapblyhqzk5ur6d6roju6jlynyy5sm7udhn4gmhrldwqkduk54 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B.nii.gz.cid new file mode 100644 index 000000000000..4cc58a9bb0aa --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B.nii.gz.cid @@ -0,0 +1 @@ +bafkreiel2l6xyfqjt36gjmc2xbeix4vambaqhgnw3x5s4lmt7el75i5uy4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0.nii.gz.cid new file mode 100644 index 000000000000..bab6bc831b75 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreielszgrryz7aqwypyd224dubvw5uuy73ltg7xwfyc7ueythqbka5i diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_1.nii.gz.cid new file mode 100644 index 000000000000..dd595abde61d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreih5dkmpl3u3trztmain6fa7karyqu55g3ukzsvtsobyeztpx2efpq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_2.nii.gz.cid new file mode 100644 index 000000000000..c054cb5cadb2 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiav2utyzjihnpjz7zkmving2sx3tabcdick2rnawwcyji5om6tv7y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_3.nii.gz.cid new file mode 100644 index 000000000000..cae86403c360 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreidwzkt5hi7ljynzeblmwdtphy2jxz22jya3pqyfbwagttl5yfam6q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_4.nii.gz.cid new file mode 100644 index 000000000000..eb11bedd516a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiaxpesvks4mw4mwaa6epe2u3awesrk4pmtbo7znjwc7gfkwkcayua diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1.nii.gz.cid new file mode 100644 index 000000000000..f2ea8a4f2ba0 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibjqmkhmmv4bqknuonk7ysv7e7yhionrsoyubwonwvopc5yiki65a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_1.nii.gz.cid new file mode 100644 index 000000000000..27355852adeb --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreics6vaajytescqjuvqfzsqhedjlhc22jfg7ulyhyolm7le7qb7764 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_2.nii.gz.cid new file mode 100644 index 000000000000..54fb70bce2d2 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreieriwncbyxtzu7npodsmfzltuorocpidufkpbka6wl2dvpbdcund4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_3.nii.gz.cid new file mode 100644 index 000000000000..c65267ea7cd2 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreihtztrr42ylg5aubmcbki7puci7j26uila4aykkykmdwrhferq624 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_4.nii.gz.cid new file mode 100644 index 000000000000..1cc75e05704d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreidxqjd2yjgvzxw4eaypyuaonwdhadkj5owwuvyjlcnfe65dj2dl5q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2.nii.gz.cid new file mode 100644 index 000000000000..70ff9cacafb6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreifehhwqd6nwyh2o4qp2rnrxyzbrftplgpph77b6yotniu2vkbkngm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_1.nii.gz.cid new file mode 100644 index 000000000000..7e51e7f88083 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreifszmg2ag5ffv6oggplwiw4rixoku3sh5ts5nmrv4yo4ejvlvysei diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_2.nii.gz.cid new file mode 100644 index 000000000000..3a74f06e0d6a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiankyuvxcb6vng32klozce5cvccele3oifq6ftbnttcwe77mms2du diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_3.nii.gz.cid new file mode 100644 index 000000000000..24a94a65c18e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreidsdp27rp5ica73jkhjhnuyjrkc2apoai7r6byleu3uuoowpmz52a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_4.nii.gz.cid new file mode 100644 index 000000000000..7f9dfe297a9a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_B_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreicjxnvkxi3own57pj5l5sy5shh4e3relt3rci7zi4htlmwm7r3gia diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C.nii.gz.cid new file mode 100644 index 000000000000..cbee53150511 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C.nii.gz.cid @@ -0,0 +1 @@ +bafkreiakvkl53mzdkhf3mxg72qcuomz5blv225hyyx35id2fdoufbrcnoa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0.nii.gz.cid new file mode 100644 index 000000000000..993f52bd0dad --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreic4vt6ytksjaxqxxuqca662tbllvktcphdcgm5qkqyfct3hbhlxiu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_1.nii.gz.cid new file mode 100644 index 000000000000..5d8a9b713dde --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreienoruq6lob6xvac4ync4bulcze4h2eejhwkwf24wqmdfbp6m5rki diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_2.nii.gz.cid new file mode 100644 index 000000000000..f762249c2ffc --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiawrhme5wgb7kstimk77lz5jq5s5v32w5zv4qquamjkycv6du7ps4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_3.nii.gz.cid new file mode 100644 index 000000000000..4991554bcca6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreibkknh4m2w46x7pxrdegkbtpjwkix7unlfqyfmczde2gclzqqimsi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_4.nii.gz.cid new file mode 100644 index 000000000000..1bc86d892b4f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreicccble7on4rllztfraeddcibsujurm7yvvcjo2hodx6cdjorkdga diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1.nii.gz.cid new file mode 100644 index 000000000000..28ed3e109abf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibbq22qlx42yh5yiijyirh37grwqxa6stm4n2x53obbnyw4gfu7yy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_1.nii.gz.cid new file mode 100644 index 000000000000..e54cb0d2e608 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibjrb6jizvhtip2n5ws3ahqwwovo4xl7qta7focn2rmt335fcq76a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_2.nii.gz.cid new file mode 100644 index 000000000000..8a29eaea8a84 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicqqc7ni4ggbkmemonz4l6wfcng6xmers5wnzslwyecsfaoowedru diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_3.nii.gz.cid new file mode 100644 index 000000000000..4f46047789eb --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreicibsvb7tjwsjfbwgrp7unybybd5fn75776lce64pgp4qztl2lygm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_4.nii.gz.cid new file mode 100644 index 000000000000..233fa872c3d8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiaidv54algroh4pthjwceajtoz5kzuebmrkfmgxhgnedasie3qcyi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2.nii.gz.cid new file mode 100644 index 000000000000..b476db07d7f6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigvv36mrwjyjpfnvlgs7lv54xqesp3ru7imdzqkp54fwnec5s2vde diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_1.nii.gz.cid new file mode 100644 index 000000000000..46d573486eca --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreie2xenhepv4jaisva4kum753ooosttdpnakg22xnxig7exehg3xwq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_2.nii.gz.cid new file mode 100644 index 000000000000..f74f0d73812f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreifimxmmirypfefafeuuf3ni76wtuvif66vodyccj72aawmogsw76a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_3.nii.gz.cid new file mode 100644 index 000000000000..afae6dd6a37d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreid5qaui4oatoq3tior3vgnviewbqlepmz2rfpawijwjqpr2rh24bu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_4.nii.gz.cid new file mode 100644 index 000000000000..dcf632e4cdfc --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_C_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiajqmgx7dn6xzyv7m24l2quqqjiqhmn3rr5k4ofyfd5xtcsiv6chu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T.nii.gz.cid new file mode 100644 index 000000000000..13018dfa347a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T.nii.gz.cid @@ -0,0 +1 @@ +bafkreie3bzuxrpedfwn4axmbzof6tp24ozhuwpdcpa4n3dk34smikuwdja diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0.nii.gz.cid new file mode 100644 index 000000000000..9afb588e08f6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreieslpeg4yz2ssh5e35irqo5sfdg3jm7yl7ffhf2z3nuxawqevw5c4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_1.nii.gz.cid new file mode 100644 index 000000000000..5f97b87f22c1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiblx6mopycsftqkqw2eeb6nwysxu45i7eqxuzse7emphokgjnrg6i diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_2.nii.gz.cid new file mode 100644 index 000000000000..190257bc0699 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigbwga5eq5ihraaajtuxkgurhw43l6c4z2ko3uy7fq7ueeomqel5u diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_3.nii.gz.cid new file mode 100644 index 000000000000..1a50183184dd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreigjqse6jphiniohamlorfe5jm27hp47tuuasld62xh3jz7rbhwybi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_4.nii.gz.cid new file mode 100644 index 000000000000..0c62b56d461d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreidjkojtnr7uyhvoj62cjknqtutqhyi5pnd2mq6c6gpbemlnvsvqvm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1.nii.gz.cid new file mode 100644 index 000000000000..77280b457726 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreifw3y72csi5hns3gcdnc2apssexw4qncjtxrn2fnje7mp2vdkn4ue diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_1.nii.gz.cid new file mode 100644 index 000000000000..f7d8e61469dd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiczvk6zyilr74suej7yslwsvhtknjccn5lgnriwj4kzaceemjla5q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_2.nii.gz.cid new file mode 100644 index 000000000000..9889d366a46f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibrgirxfhhy55ifk7wf743vdgpaa7aeujwftl4jb37bmf7ijqrhuy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_3.nii.gz.cid new file mode 100644 index 000000000000..f3ac42eb47f5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreidgd4ogitjzd4yjwchulaz7b4x2woq5gmzh24q4lfoghlcn2y7kv4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_4.nii.gz.cid new file mode 100644 index 000000000000..a080a96c0e10 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiepbb3gxbq5ic7lqm5wrmzxwj25zjz2ozsplh6y67kz4fbo3is5ja diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2.nii.gz.cid new file mode 100644 index 000000000000..728888d9b79e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreifszn4rlfyde7n2kva6gigegw56xmackix3gctp5inmvim534axxq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_1.nii.gz.cid new file mode 100644 index 000000000000..84a32483317c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreih77wssqu3d5pcmhyxfdpqoevzorivbfa3bvx5i44jr6h2qkl6eve diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_2.nii.gz.cid new file mode 100644 index 000000000000..a6c7fb11af85 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreicvuyvvyelq6yrt6p3erzkwijyunbi2lqspdvqniafw44mtn5it5m diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_3.nii.gz.cid new file mode 100644 index 000000000000..061d2baf3cd3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreih6wonrnbwbaqghub6tndyv53gxdegvtjqqethzqvympslfbmvdgi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_4.nii.gz.cid new file mode 100644 index 000000000000..99ade7042277 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_fin_T_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreiauqfcyd6up3ruv3dklz2rpddmv2zp6lhzn4nthfizrri3ohiuw3q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B.nii.gz.cid new file mode 100644 index 000000000000..842099cb20de --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B.nii.gz.cid @@ -0,0 +1 @@ +bafkreic7q4gkyokrflzxqqqitx5pbv7cxe5vrrgtwwbxrxj33hlni3v6qy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0.nii.gz.cid new file mode 100644 index 000000000000..f1710f4bc0dc --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreicplkb3vysf5jt66ccv76lst4bt77ui7zbgonw2gd3anc2swuiq2e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_1.nii.gz.cid new file mode 100644 index 000000000000..e4b5328d4931 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreib2w27h7cr6u3txkfn3ul47kvslmhtntai5q3euy3d3fyjrz3hdlm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_2.nii.gz.cid new file mode 100644 index 000000000000..266e920e09a0 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigzz4usgkejergfvv34n64malo5ufyktkwk6jyqb2wrmftcbepeii diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_3.nii.gz.cid new file mode 100644 index 000000000000..054ca8b8096c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreiguyzdgwem6n2prhcdxjxqzgtghyxjqpmymuthu4mmctsshfux33e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_4.nii.gz.cid new file mode 100644 index 000000000000..89d3b339cf96 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreihbhw5twq2tq67iydgrkgpsla47kvuxm43bgejlqdisiowk37nn2q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1.nii.gz.cid new file mode 100644 index 000000000000..cac0a72c4955 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibapb7tvpfshm2w74gjxngrjjc4bfucofuejgmuwqo4tngxxg6xvq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_1.nii.gz.cid new file mode 100644 index 000000000000..a51a1a99acaf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihsfojeahvb3d2ljjkadzjskxe6oalm2mvattgj7otogeizbxxh3q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_2.nii.gz.cid new file mode 100644 index 000000000000..0ecc24e7ecf4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreigr6aan34ybgkhgskx3lxuwycdpi3o37twcdmft2he3u5opg4mafa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_3.nii.gz.cid new file mode 100644 index 000000000000..c1eb4ea5c884 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreihvljuycgfqyqmmsjg35ftpx57t7lmqyqchzvf5eocidf7kitd3h4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_4.nii.gz.cid new file mode 100644 index 000000000000..4e14ba348641 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreibnolfvimlqhwev6zikpi7ueubkznprrcpwwnrx7oxwr5uzmkymfi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2.nii.gz.cid new file mode 100644 index 000000000000..55d7df6b42e1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreidhf3ris5k3jpw2mxagdhdybvnvng5nphssptmzkxhqjcgsgeuvla diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_1.nii.gz.cid new file mode 100644 index 000000000000..88273079e074 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibdpy5yrnzxzyxew6os3o6yyygbmbuevnskcqch7i5tulw64zvheq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_2.nii.gz.cid new file mode 100644 index 000000000000..185998216565 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreih6seegr4qsstllokauqlk3fgzispwbqgozucn6jr6edyk7hfk4sm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_3.nii.gz.cid new file mode 100644 index 000000000000..c4aaa76f91ff --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreifa5ru67mlxbvjibzfgxl5kwiudj2ro2y4khokvjaepteiwne77aa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_4.nii.gz.cid new file mode 100644 index 000000000000..17b97643fc34 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_B_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreicqhj7j26vspnhfhumetd7fcbuzndqj5tdo5aqgnn5mqnvcogkeya diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C.nii.gz.cid new file mode 100644 index 000000000000..eec90346db76 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C.nii.gz.cid @@ -0,0 +1 @@ +bafkreifdjur525totsysuat2non6j6vpimul6xdukzstp3q4o3swgnt6q4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0.nii.gz.cid new file mode 100644 index 000000000000..610ade99d99b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreic4gp2rdlqwggv2hsvhjuqcb65cqqs2efg4v3hnctf5n37yykvira diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_1.nii.gz.cid new file mode 100644 index 000000000000..e3e419227cf7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreig3nosqrsewtwhm36v2zt2o2bmhhd7yhgba75mhth3smsv3xighqu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_2.nii.gz.cid new file mode 100644 index 000000000000..7d6106f2f093 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreih7mv26awr34u4hbmz75stmg6jxqpox5fufw2nmxx56rhfa2mr3hm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_3.nii.gz.cid new file mode 100644 index 000000000000..ba8536204c0d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreif4js3xbuo34377vzpligwjuqihovzpvhu75xbmzm7vthljvwgvky diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_4.nii.gz.cid new file mode 100644 index 000000000000..ec68819dd9bd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreidgk3dtzyctmsbydh42alimy47vfufhug2oo4doudsezmdzt6jhxi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1.nii.gz.cid new file mode 100644 index 000000000000..91c57f864a63 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibiocs2ltdmvmv3wjbxxepebv55duleceiu4iz4qiopxivppyfrsq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_1.nii.gz.cid new file mode 100644 index 000000000000..f9093a3df8dc --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreicdpz3kp4jen3y2o4ns3jkzi6tgrlnbztdyh7unt7z43y4rzgjq4e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_2.nii.gz.cid new file mode 100644 index 000000000000..9fa783f04c4c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreif6kcns474amagiwbiqch22lsyvrnz35sks7ql4dnwz5dvei5ciiy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_3.nii.gz.cid new file mode 100644 index 000000000000..8c41d4f603ec --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreidkqe4rws4xyx7kwjn5h7igpseh2bn6cg5irtu7yogkymx3akuqia diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_4.nii.gz.cid new file mode 100644 index 000000000000..42b382e11807 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreidczlu45ktq3u54blo2jpwxg7cwihadxfhe455dqs2stis32g3wny diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2.nii.gz.cid new file mode 100644 index 000000000000..13300fbd16b7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibw55d27pq2xfofalc7vutuzach3t3stl2ylwemv2sbldjrmtyxhu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_1.nii.gz.cid new file mode 100644 index 000000000000..824f1fea1676 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiamuqmoczodl6fj75rexv7pyo3ugwej2xmhcfszbcefihptlzvu74 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_2.nii.gz.cid new file mode 100644 index 000000000000..4d07708571c1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiet77veqqlhr2zgbkp5mprwu3ksid5if2n6taiq7ak5h4cms5yd5q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_3.nii.gz.cid new file mode 100644 index 000000000000..2e454904fc05 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreidyhehcg55su3w3qomewamt6m73pmid3fvtjw5hrujzv2j3zvgsza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_4.nii.gz.cid new file mode 100644 index 000000000000..d7e251f775be --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_C_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreigqgbnujsszggbgboikfdbo4ohstwqrp4uicxh6tsbeqieatrjn6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T.nii.gz.cid new file mode 100644 index 000000000000..28ddb846259d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T.nii.gz.cid @@ -0,0 +1 @@ +bafkreifpu45hbxe3ga6kyrjyc2ytxwnjzm6kpi5qa4jc3s6vzro7qjtc6m diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0.nii.gz.cid new file mode 100644 index 000000000000..9ea907447432 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0.nii.gz.cid @@ -0,0 +1 @@ +bafkreibuqtbq2viaxaem72jiw6qkbse7xtqxsabpqz3k6wcuubp4j3a25a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_1.nii.gz.cid new file mode 100644 index 000000000000..2b6f0295889f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreiarf5fcx2ytcmfnolch6pfmgdrp3draj4yr6k2lvmx7worimk2jfy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_2.nii.gz.cid new file mode 100644 index 000000000000..a570f0d8b0b6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreiduvsspfq4weha4vb2lqz77kmt3qsfrotxaacvbjoycypccsawtjy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_3.nii.gz.cid new file mode 100644 index 000000000000..257413afea2c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreiek6y6ew7spuklzefeuhpju5c7uteq6sfxm7umr27hijstfmmc4ae diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_4.nii.gz.cid new file mode 100644 index 000000000000..e0708670ae84 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_0_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreigeyxysuh2etdtrheptxytj5pf2sz7zchphg5uemajumehh6tcaiy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1.nii.gz.cid new file mode 100644 index 000000000000..20a82661d65a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreihsfr5q2iakuctxxujjkxlulo44bxskuirs7ivro637tje73dk4ky diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_1.nii.gz.cid new file mode 100644 index 000000000000..09262004e8ac --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreibilipts4ltuaz3ulonzgyjxyj3gxuayvr2crwx64lltaahzjgap4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_2.nii.gz.cid new file mode 100644 index 000000000000..135b82de7202 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreibwiludsylwokhhox4o4mnlldfb3aqw27qv3blmzoocz7o2h3gqma diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_3.nii.gz.cid new file mode 100644 index 000000000000..f67856664fef --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreibed5x72464lt4fw5wbrybcc5ob25ciys4i4tezkaeylpm33ulnye diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_4.nii.gz.cid new file mode 100644 index 000000000000..3accdb7ae34a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_1_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreigtxxb6r5elhgmgvpxfzvay5uhu765iz6e4ivcq77dfe754sbj6c4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2.nii.gz.cid new file mode 100644 index 000000000000..ce369c7f01b6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreienjum67skfcro6qnjjgopzwsm3qawbovm5pregrafkf4lx7n4r6y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_1.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_1.nii.gz.cid new file mode 100644 index 000000000000..e206ec045d22 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_1.nii.gz.cid @@ -0,0 +1 @@ +bafkreicit7cvxguq4ovwaurs4ok44fop3itad76hkbicvfy6mf3fhhhqhy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_2.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_2.nii.gz.cid new file mode 100644 index 000000000000..7729a95e3b14 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_2.nii.gz.cid @@ -0,0 +1 @@ +bafkreia5llymca4lxzyuj5lpvhttrhyrawfw3iabrpqmw74enr4s22wqt4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_3.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_3.nii.gz.cid new file mode 100644 index 000000000000..1c35ff1daf7b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_3.nii.gz.cid @@ -0,0 +1 @@ +bafkreibiowrk2wqfxbtfdxcwp35nd53nhdoqau4vcwyrq7oj2weu2lzgpq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_4.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_4.nii.gz.cid new file mode 100644 index 000000000000..4eb36a753ccb --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/65239R_amygdala_int_T_2_4.nii.gz.cid @@ -0,0 +1 @@ +bafkreidozhk2wya7bn6k36ghe7sqobxjquzbwwgko4inokaybj6okuuxue diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_B.nrrd.cid new file mode 100644 index 000000000000..371f24a99955 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_B.nrrd.cid @@ -0,0 +1 @@ +bafkreihmyn7pkuhrz7323e7rab5deqr6hs3hoxhx6bqdko5mxky4ron55y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_C.nrrd.cid new file mode 100644 index 000000000000..5f8d45332d0d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_C.nrrd.cid @@ -0,0 +1 @@ +bafkreih2f6yc42ddnpldhs4bx47zkxwi6w43qwllebekce23fomvr6ty54 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_T.nrrd.cid new file mode 100644 index 000000000000..3ad663a5f962 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/AccidentalMiddleSliceSeg_T.nrrd.cid @@ -0,0 +1 @@ +bafkreiewynultepbpqlddm5yf2rtun2jgapdhlsmb7d2bgmej5jnouqklq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B.nrrd.cid new file mode 100644 index 000000000000..d32e93144f53 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B.nrrd.cid @@ -0,0 +1 @@ +bafkreiapuklol6iv4kaniskgwhut54g447lrkouoavtda2h4agqwoxbbxm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_0.nrrd.cid new file mode 100644 index 000000000000..1944d617b8d2 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_0.nrrd.cid @@ -0,0 +1 @@ +bafkreih4uhydotywmb6eu53mschijyh6to7q27zlkngzwjhbsnbo74ucyu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_1.nrrd.cid new file mode 100644 index 000000000000..751f7611b47d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_1.nrrd.cid @@ -0,0 +1 @@ +bafkreifupfjqwz6aibt46uai3xw2muosqempnk6r24neijth5smtv6xo4y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_2.nrrd.cid new file mode 100644 index 000000000000..82f9b1bc18db --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_B_2.nrrd.cid @@ -0,0 +1 @@ +bafkreicihjetwkydgpe2mxucpk6orgewuzuarkmbpfgllvgsbmqpu6lykm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C.nrrd.cid new file mode 100644 index 000000000000..5f485217108d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C.nrrd.cid @@ -0,0 +1 @@ +bafkreicoifnzmuzk6hqjrdla4dn5hnjhepxlldcx374ji5nqlx7hwsului diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_0.nrrd.cid new file mode 100644 index 000000000000..226644490ca8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_0.nrrd.cid @@ -0,0 +1 @@ +bafkreierm4lk2nraz3qt47hte3blzw2i7cqn5ighmdzyxl7avkvcxnpjjq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_1.nrrd.cid new file mode 100644 index 000000000000..ec3eccfa98a4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_1.nrrd.cid @@ -0,0 +1 @@ +bafkreigqr2puukd2jeeu5ftdip6fvmbq2feqbsyldxhxbrdqev4ith6mr4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_2.nrrd.cid new file mode 100644 index 000000000000..9229f01cdbf6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_C_2.nrrd.cid @@ -0,0 +1 @@ +bafkreice23rju7aotgkhu4l6guk5aizxmrmtx43g3kozpzenxpugq5nugu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T.nrrd.cid new file mode 100644 index 000000000000..85c7bec83060 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T.nrrd.cid @@ -0,0 +1 @@ +bafkreiaus35e6yzwijz3tugz6m5kd4paz2k5ja3znyrmj2kmouvoe6nona diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_0.nrrd.cid new file mode 100644 index 000000000000..097416460702 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_0.nrrd.cid @@ -0,0 +1 @@ +bafkreigqrpdcm4purerhh4r6sernyi2qk6ipav5u7tu76l3v27sljn4724 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_1.nrrd.cid new file mode 100644 index 000000000000..358b617b0ea5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_1.nrrd.cid @@ -0,0 +1 @@ +bafkreif4a5ke54h72hapy3hl2mrqrndqtvqtb3gkpl63pv5oqqxe6yp3se diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_2.nrrd.cid new file mode 100644 index 000000000000..734c523abb06 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/BigZ_T_2.nrrd.cid @@ -0,0 +1 @@ +bafkreihxqvezdw743xp5o6cs6qyqjqohwwbrcg5lpudwdjhrlggzzvstle diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_B.nrrd.cid new file mode 100644 index 000000000000..9dd1f2436d24 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_B.nrrd.cid @@ -0,0 +1 @@ +bafkreigyky43pe2glq43mvxinfoxvlnv7oj26z3rqwsxe52qtuwd6gr5ci diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_C.nrrd.cid new file mode 100644 index 000000000000..e8253699c9a3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_C.nrrd.cid @@ -0,0 +1 @@ +bafkreie5wtlut446ndwumi4xsuophjalk7biygsh4guc6ygmej6ypulnwi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_T.nrrd.cid new file mode 100644 index 000000000000..7dd226971580 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/DoubleTwoLabelBranching_T.nrrd.cid @@ -0,0 +1 @@ +bafkreiao2zgt7a6xhmucii6t5nubys6q65pkrnzxifhb36kdfndguv3zre diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_B.nrrd.cid new file mode 100644 index 000000000000..9b596016c7fe --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_B.nrrd.cid @@ -0,0 +1 @@ +bafkreicgqhfbdvqkl4byv56sjfvd4tbj6d4cmkx4bsgtunfxg3gaiddaza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_C.nrrd.cid new file mode 100644 index 000000000000..9b596016c7fe --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_C.nrrd.cid @@ -0,0 +1 @@ +bafkreicgqhfbdvqkl4byv56sjfvd4tbj6d4cmkx4bsgtunfxg3gaiddaza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_T.nrrd.cid new file mode 100644 index 000000000000..9b596016c7fe --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Empty_T.nrrd.cid @@ -0,0 +1 @@ +bafkreicgqhfbdvqkl4byv56sjfvd4tbj6d4cmkx4bsgtunfxg3gaiddaza diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_B.nrrd.cid new file mode 100644 index 000000000000..a9bace479a7f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_B.nrrd.cid @@ -0,0 +1 @@ +bafkreihc6q2lnb46gfyu77w5y4ilsqekx3oiuggjlzce64aq3tcvxglduy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_C.nrrd.cid new file mode 100644 index 000000000000..7dc5c20edf70 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_C.nrrd.cid @@ -0,0 +1 @@ +bafkreiho4n7k5tfmzmkup5sdwtrotqmfxnypsjxvvtqpwn3aokmgoyrd4e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_T.nrrd.cid new file mode 100644 index 000000000000..ccf422d89cb8 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ExtrapolationAppearing_T.nrrd.cid @@ -0,0 +1 @@ +bafkreie2xyzlhwiwtbpz77bcvzhm7v277i7swhavyjisuqgnl6ztyup574 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B.nrrd.cid new file mode 100644 index 000000000000..6a717c0134ab --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B.nrrd.cid @@ -0,0 +1 @@ +bafkreigv4bcueqojhouysj3lxeigd2i3f3rcvmtkypi7linrgnei4zlr6a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_0.nrrd.cid new file mode 100644 index 000000000000..4a5a305aa503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_0.nrrd.cid @@ -0,0 +1 @@ +bafkreibfqp6j6zbbt2fc4arnc2epnb2vb3wrd3g2ds4cvyygbwl5a264fq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_1.nrrd.cid new file mode 100644 index 000000000000..4a5a305aa503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_1.nrrd.cid @@ -0,0 +1 @@ +bafkreibfqp6j6zbbt2fc4arnc2epnb2vb3wrd3g2ds4cvyygbwl5a264fq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_2.nrrd.cid new file mode 100644 index 000000000000..6a717c0134ab --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_B_2.nrrd.cid @@ -0,0 +1 @@ +bafkreigv4bcueqojhouysj3lxeigd2i3f3rcvmtkypi7linrgnei4zlr6a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C.nrrd.cid new file mode 100644 index 000000000000..6a717c0134ab --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C.nrrd.cid @@ -0,0 +1 @@ +bafkreigv4bcueqojhouysj3lxeigd2i3f3rcvmtkypi7linrgnei4zlr6a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_0.nrrd.cid new file mode 100644 index 000000000000..4a5a305aa503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_0.nrrd.cid @@ -0,0 +1 @@ +bafkreibfqp6j6zbbt2fc4arnc2epnb2vb3wrd3g2ds4cvyygbwl5a264fq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_1.nrrd.cid new file mode 100644 index 000000000000..4a5a305aa503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_1.nrrd.cid @@ -0,0 +1 @@ +bafkreibfqp6j6zbbt2fc4arnc2epnb2vb3wrd3g2ds4cvyygbwl5a264fq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_2.nrrd.cid new file mode 100644 index 000000000000..6a717c0134ab --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_C_2.nrrd.cid @@ -0,0 +1 @@ +bafkreigv4bcueqojhouysj3lxeigd2i3f3rcvmtkypi7linrgnei4zlr6a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T.nrrd.cid new file mode 100644 index 000000000000..eee1d44da109 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T.nrrd.cid @@ -0,0 +1 @@ +bafkreibbrba7uuc4oa3q7gk25sdpw3vw6mxzq2yrvbmawmbmgg6ixulcjm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_0.nrrd.cid new file mode 100644 index 000000000000..4a5a305aa503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_0.nrrd.cid @@ -0,0 +1 @@ +bafkreibfqp6j6zbbt2fc4arnc2epnb2vb3wrd3g2ds4cvyygbwl5a264fq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_1.nrrd.cid new file mode 100644 index 000000000000..4a5a305aa503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_1.nrrd.cid @@ -0,0 +1 @@ +bafkreibfqp6j6zbbt2fc4arnc2epnb2vb3wrd3g2ds4cvyygbwl5a264fq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_2.nrrd.cid new file mode 100644 index 000000000000..eee1d44da109 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FaceRoI_T_2.nrrd.cid @@ -0,0 +1 @@ +bafkreibbrba7uuc4oa3q7gk25sdpw3vw6mxzq2yrvbmawmbmgg6ixulcjm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_B.nrrd.cid new file mode 100644 index 000000000000..15d673454c50 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_B.nrrd.cid @@ -0,0 +1 @@ +bafkreibmeohmkrkulrmyqqptoch3v2mwoausnhpq5btvyqnzromjmsk534 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_C.nrrd.cid new file mode 100644 index 000000000000..0a55bd2daf25 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_C.nrrd.cid @@ -0,0 +1 @@ +bafkreig2r4hx2bqy6mcyizsr6c4zoh5y2rs4stsuzyxdlmyifddaogzkei diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_T.nrrd.cid new file mode 100644 index 000000000000..2b37cbbcf68c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FourD_T.nrrd.cid @@ -0,0 +1 @@ +bafkreichjpbeckembatldnr2ji4hytj2mlhin3y3g7dkiwnac2mellq4ya diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_B.nrrd.cid new file mode 100644 index 000000000000..c0f5f1383d89 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_B.nrrd.cid @@ -0,0 +1 @@ +bafkreidjbqsw4ygy4isc6gqqpgcg5adexeoc5gnt26j7zpfm5lhhmme2ry diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_C.nrrd.cid new file mode 100644 index 000000000000..46e5b50a3a78 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_C.nrrd.cid @@ -0,0 +1 @@ +bafkreifyi3id6eepu6y3olfibam5yeamsrmwkmt63xfiynycupbglp6bv4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_T.nrrd.cid new file mode 100644 index 000000000000..ec5f04af48eb --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/FullEnd_T.nrrd.cid @@ -0,0 +1 @@ +bafkreiaikmrln5dgb5riospazucekysopre6f2hn5k27tl2e2g45dwuwbm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B.nrrd.cid new file mode 100644 index 000000000000..fd61f8909dcf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B.nrrd.cid @@ -0,0 +1 @@ +bafkreihaa52jcvehe5vczpvgg634yarwvmvzmcyc2kf3mk32ng4uqbzn34 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_0.nrrd.cid new file mode 100644 index 000000000000..62ad06773b37 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_0.nrrd.cid @@ -0,0 +1 @@ +bafkreifdxiiaajburcwn73i5xmae7ja4ylti7qeoxcwltnvvuu4bjg5sfa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_1.nrrd.cid new file mode 100644 index 000000000000..9700cd448d2a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_1.nrrd.cid @@ -0,0 +1 @@ +bafkreifdxzp4mttdvy7vy5fuj5ifegmtbntf5rdhietfz6vv4cllac3pqm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_2.nrrd.cid new file mode 100644 index 000000000000..4139b5cd7024 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_B_2.nrrd.cid @@ -0,0 +1 @@ +bafkreiak6ifpzjq25flpwey4ctqvrhfyp5pjb22pfb7ojoumamupxt6qqa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C.nrrd.cid new file mode 100644 index 000000000000..5d8a28635f89 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C.nrrd.cid @@ -0,0 +1 @@ +bafkreih3hthb3qziv2vx7n7piaxvgoytqvoe7ujcm3gdnqst2rswoegruy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_0.nrrd.cid new file mode 100644 index 000000000000..1092b90e9be5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_0.nrrd.cid @@ -0,0 +1 @@ +bafkreibo37b4f4o3vgzvzr3ccjdc25oimgq3nuwps22trjvhibjgrjcoju diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_1.nrrd.cid new file mode 100644 index 000000000000..3000feccec19 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_1.nrrd.cid @@ -0,0 +1 @@ +bafkreiagsioj4w2ds4uxqyfwjtasjvw535cuxbaq4kaebxtllbms3c6s7m diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_2.nrrd.cid new file mode 100644 index 000000000000..274125346257 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_C_2.nrrd.cid @@ -0,0 +1 @@ +bafkreihc4xn2hgbw4ri6peqelhws6jjvnxqj2zijt3nsactcj4sgaxf5ny diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T.nrrd.cid new file mode 100644 index 000000000000..8cea1abc607a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T.nrrd.cid @@ -0,0 +1 @@ +bafkreihzwm24wpwikigmy4vqscx7233seauy36sssfhd3evblmua5sdq64 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_0.nrrd.cid new file mode 100644 index 000000000000..880ecc47f290 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_0.nrrd.cid @@ -0,0 +1 @@ +bafkreie3pehbryurdz2kiqtssmeerqhqwo2lrcgsgn4hfouqlzurujychq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_1.nrrd.cid new file mode 100644 index 000000000000..921db1c0d712 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_1.nrrd.cid @@ -0,0 +1 @@ +bafkreigb6gaejovdhung77a3nyyjsj36bldcovqigh2uj6zfxcc3646s3e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_2.nrrd.cid new file mode 100644 index 000000000000..a8e05d92cbb4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg2_T_2.nrrd.cid @@ -0,0 +1 @@ +bafkreifg2sb6npj3nrp4yuqmly2r2crgxmj7bmzuwpm62phd3ptizrnd5y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B.nrrd.cid new file mode 100644 index 000000000000..8eb43554aeb4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B.nrrd.cid @@ -0,0 +1 @@ +bafkreia77htujqonvdzb4wdzk2c3fmmjx6s5wc4zvfkahxumcou2vtlsri diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_0.nrrd.cid new file mode 100644 index 000000000000..5532198b4486 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_0.nrrd.cid @@ -0,0 +1 @@ +bafkreic3pglfqbohswbr6bmsccbgiyrycnd5fhclpgdphmdapa33sg3vwe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_1.nrrd.cid new file mode 100644 index 000000000000..6c426cdd3b26 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_1.nrrd.cid @@ -0,0 +1 @@ +bafkreihercuycttbrfio2wpisqs424lw7mcwxkbxa7d3go56jopvcziuhq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_2.nrrd.cid new file mode 100644 index 000000000000..7e8896eec0d1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_B_2.nrrd.cid @@ -0,0 +1 @@ +bafkreiegwiwbjnyxswaxifzqfoj6k3e37yfl7yg2klfareilgpsutajd4a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C.nrrd.cid new file mode 100644 index 000000000000..a93087f7bccf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C.nrrd.cid @@ -0,0 +1 @@ +bafkreiejdf75hapsgtg2y7pj5e75bccgzkrwcbu4bzpydun52aqh54cqxm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_0.nrrd.cid new file mode 100644 index 000000000000..ebe1d9d86a96 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_0.nrrd.cid @@ -0,0 +1 @@ +bafkreib2io7sihgmaudm3dkva4fokezey4qarpoayfq6rsm5zsn2vqx5jm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_1.nrrd.cid new file mode 100644 index 000000000000..aec5860a7827 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_1.nrrd.cid @@ -0,0 +1 @@ +bafkreigmlcoppevba7kfmphvl2pbisrb34qvkcmkt7acnhqwpxz32vlgre diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_2.nrrd.cid new file mode 100644 index 000000000000..93dc0258cd26 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_C_2.nrrd.cid @@ -0,0 +1 @@ +bafkreiex2reaap5iogeabcfhqki7ouyreforbfe23pr62y5dpodz4qmer4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T.nrrd.cid new file mode 100644 index 000000000000..2171630caa3a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T.nrrd.cid @@ -0,0 +1 @@ +bafkreig2z64wksenfpmsanboetxudsuea7jqtghiofvzaxavm6qm25r5l4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_0.nrrd.cid new file mode 100644 index 000000000000..323f9e683078 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_0.nrrd.cid @@ -0,0 +1 @@ +bafkreieqqdkdomawv7snthxty2x6g3j4jaovdhwwyfpkbcsehnzcu364wi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_1.nrrd.cid new file mode 100644 index 000000000000..2c0297c933b4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_1.nrrd.cid @@ -0,0 +1 @@ +bafkreib5zxhaegm2y7h22j4zwlpghtdkhsun57h5szrohmpka2yl33esbm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_2.nrrd.cid new file mode 100644 index 000000000000..b1d3a623a773 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/GridSeg_T_2.nrrd.cid @@ -0,0 +1 @@ +bafkreigmau4vcelwofi7xnqi36id2vg2dcvgsx5iqcuj4hxvz37osdm7qe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_B.nrrd.cid new file mode 100644 index 000000000000..3fcc91799508 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_B.nrrd.cid @@ -0,0 +1 @@ +bafkreihdrdpt7wiudnannjpxlbouwipyt62zt7kh532kxc3c24nsdja4wq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_C.nrrd.cid new file mode 100644 index 000000000000..cd8aa91442f1 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_C.nrrd.cid @@ -0,0 +1 @@ +bafkreihscnsmqgozvtyikharuccdawku6hujv2cdpobdmlhz2kcisor6ue diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_T.nrrd.cid new file mode 100644 index 000000000000..65999f699037 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany16_T.nrrd.cid @@ -0,0 +1 @@ +bafkreia46jypsxbkxuvir3g7axfh5l3djc6rt7ceblm4tthquhtxfdqpei diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_B.nrrd.cid new file mode 100644 index 000000000000..21eebbb2b161 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_B.nrrd.cid @@ -0,0 +1 @@ +bafkreigfqxkod62sntm7orjzyyzsmtfhbk7lem6sslfa2gfq6mjg3zh4eq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_C.nrrd.cid new file mode 100644 index 000000000000..d5d20b751e45 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_C.nrrd.cid @@ -0,0 +1 @@ +bafkreie6f6cafvow5flj6stcyaj35jx2pyfa3wtllt477xdrb54dl2acju diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_T.nrrd.cid new file mode 100644 index 000000000000..6743de9fbd89 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ManyToMany_T.nrrd.cid @@ -0,0 +1 @@ +bafkreigrkmjyeg4kggxxly5cldzxitpnmaecah5y5vqlbouczs46hpys3y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_B.nrrd.cid new file mode 100644 index 000000000000..e88961a6c3c4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_B.nrrd.cid @@ -0,0 +1 @@ +bafkreicyvy5uecyza76g4bcr2nbswone6rrlkubeeyte6yeqe62j3u76qa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_C.nrrd.cid new file mode 100644 index 000000000000..e88961a6c3c4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_C.nrrd.cid @@ -0,0 +1 @@ +bafkreicyvy5uecyza76g4bcr2nbswone6rrlkubeeyte6yeqe62j3u76qa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_T.nrrd.cid new file mode 100644 index 000000000000..89a58eea0fe9 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/Micro1_T.nrrd.cid @@ -0,0 +1 @@ +bafkreihgxlpd4evgxla37tn6freb3kw5ngthdln3xgzzvsbrmi4oy6f5ne diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_B.nrrd.cid new file mode 100644 index 000000000000..dcaa296fbd11 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_B.nrrd.cid @@ -0,0 +1 @@ +bafkreig5ygh4vqwbhuhgv4shub6nyn5dxv2d6wtgovdwqqkv5iwn4ohf3y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_C.nrrd.cid new file mode 100644 index 000000000000..dcaa296fbd11 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_C.nrrd.cid @@ -0,0 +1 @@ +bafkreig5ygh4vqwbhuhgv4shub6nyn5dxv2d6wtgovdwqqkv5iwn4ohf3y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_T.nrrd.cid new file mode 100644 index 000000000000..dcaa296fbd11 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/NoSlices_T.nrrd.cid @@ -0,0 +1 @@ +bafkreig5ygh4vqwbhuhgv4shub6nyn5dxv2d6wtgovdwqqkv5iwn4ohf3y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_B.nrrd.cid new file mode 100644 index 000000000000..b7d61ae9ead7 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_B.nrrd.cid @@ -0,0 +1 @@ +bafkreighhapx2okkpm767f7e6eszycckghbnvv5slztxhvqtsp63iydh5a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_C.nrrd.cid new file mode 100644 index 000000000000..a8e24f2e8504 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_C.nrrd.cid @@ -0,0 +1 @@ +bafkreidekc2nto76sfbadeb7oax7s3rq3xktyj3t25qebiwqv5267qbl3u diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_T.nrrd.cid new file mode 100644 index 000000000000..6ef64e787f2b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToOne_T.nrrd.cid @@ -0,0 +1 @@ +bafkreigmljwotfinmpfwlkoqka4myo7c2pkrn2ncdlsepk5i2mcobn3xcq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_B.nrrd.cid new file mode 100644 index 000000000000..eeb1bdc05e54 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_B.nrrd.cid @@ -0,0 +1 @@ +bafkreicgb2kche6tvqi7hlhjv4ffeodgumsnvbk44oebqzmsjywmurxx2m diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_C.nrrd.cid new file mode 100644 index 000000000000..f53e742caa08 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_C.nrrd.cid @@ -0,0 +1 @@ +bafkreide2ylqgeavmhtro45rv2xbkldk364qtzonzy6crao6yvgmuw5rhm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_T.nrrd.cid new file mode 100644 index 000000000000..059e26a18929 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/OneToThree_T.nrrd.cid @@ -0,0 +1 @@ +bafkreifblitpsgt5mbela3vrdhbzahsowhhd6ooakfcv72yjgrnrdqwc64 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_B.nrrd.cid new file mode 100644 index 000000000000..8c12c823abb4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_B.nrrd.cid @@ -0,0 +1 @@ +bafkreibt464276qlxgdff7gbezvdsdy42lvw4xmcxbutwgaeb6ldyl2lou diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_C.nrrd.cid new file mode 100644 index 000000000000..507348e4e94e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_C.nrrd.cid @@ -0,0 +1 @@ +bafkreig2vdcjrpvavwy5rsizvuqcwx7fm4lwpjatgv3hnhluqxaumhqkja diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_T.nrrd.cid new file mode 100644 index 000000000000..42dc32c78503 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SevenLabels_T.nrrd.cid @@ -0,0 +1 @@ +bafkreifpwz4ufelhggjpbh5oz4zyca2ocxzcz6hecrgtljurjueyid4kby diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_B.nrrd.cid new file mode 100644 index 000000000000..ee19b5125097 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_B.nrrd.cid @@ -0,0 +1 @@ +bafkreigesnc4q7q75tgo6ejajgie74z33q2sz6nb2tkrm7q7fmjpnlipty diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_C.nrrd.cid new file mode 100644 index 000000000000..3550cf7ef21b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_C.nrrd.cid @@ -0,0 +1 @@ +bafkreieec6i3scu2oletboslg3rjuvvdb6qq52yz4uilesook4vzk7izhy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_T.nrrd.cid new file mode 100644 index 000000000000..f3dc03cfc31e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/SimplestOneToOne_T.nrrd.cid @@ -0,0 +1 @@ +bafkreiajjiapiopzuurx4utlo75i6apm2omryha5ihhvewtx3lqr3bjnge diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B.nrrd.cid new file mode 100644 index 000000000000..015619094671 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B.nrrd.cid @@ -0,0 +1 @@ +bafkreielkkmkrrv7oseu3fwjbtu7x6haad73dp4nk2pjxwqrc6bo2imhvq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0.nrrd.cid new file mode 100644 index 000000000000..3f6abc77eb73 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0.nrrd.cid @@ -0,0 +1 @@ +bafkreidvf7aho4mfxzmgefrklyogbfgt64xuzw73gpgqscgp3f7ovd6x6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0_0.nrrd.cid new file mode 100644 index 000000000000..3f6abc77eb73 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0_0.nrrd.cid @@ -0,0 +1 @@ +bafkreidvf7aho4mfxzmgefrklyogbfgt64xuzw73gpgqscgp3f7ovd6x6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0_4.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0_4.nrrd.cid new file mode 100644 index 000000000000..3f6abc77eb73 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_0_4.nrrd.cid @@ -0,0 +1 @@ +bafkreidvf7aho4mfxzmgefrklyogbfgt64xuzw73gpgqscgp3f7ovd6x6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1.nrrd.cid new file mode 100644 index 000000000000..be9977885d8b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1.nrrd.cid @@ -0,0 +1 @@ +bafkreid4z3xtc2zikeyrk2zettp3i33pmzjap3tlwhzr6g7slz4ljspliq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1_1.nrrd.cid new file mode 100644 index 000000000000..b143749ed2d0 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1_1.nrrd.cid @@ -0,0 +1 @@ +bafkreiestqb5dxl7zzwuwlbny6dfzn6wythhj6knh3czlcevwmfkjxprc4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1_2.nrrd.cid new file mode 100644 index 000000000000..31e3a639edf3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_1_2.nrrd.cid @@ -0,0 +1 @@ +bafkreiegslyvam6ti4fdtydd5nqk4gyfzqzc3qt3hy7e3nzggigam6cflq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2.nrrd.cid new file mode 100644 index 000000000000..e130610d3722 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2.nrrd.cid @@ -0,0 +1 @@ +bafkreifmkvbk3omjxku3rr4g5brghcy3s6djfifkwhfoqj54inaq4x5v4q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2_2.nrrd.cid new file mode 100644 index 000000000000..1df7d8edfd1f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2_2.nrrd.cid @@ -0,0 +1 @@ +bafkreic55uli2c6huy7o3tj7tz6lyjytr52gxxb32ov2hx5lyadw3bjkuy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2_3.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2_3.nrrd.cid new file mode 100644 index 000000000000..e130610d3722 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_B_2_3.nrrd.cid @@ -0,0 +1 @@ +bafkreifmkvbk3omjxku3rr4g5brghcy3s6djfifkwhfoqj54inaq4x5v4q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C.nrrd.cid new file mode 100644 index 000000000000..dad9237f8b4c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C.nrrd.cid @@ -0,0 +1 @@ +bafkreigsazcmxu2mpoprxu5yt5lydse4kuqxz56ajscd5gzcelnkselrvi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0.nrrd.cid new file mode 100644 index 000000000000..3f6abc77eb73 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0.nrrd.cid @@ -0,0 +1 @@ +bafkreidvf7aho4mfxzmgefrklyogbfgt64xuzw73gpgqscgp3f7ovd6x6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0_0.nrrd.cid new file mode 100644 index 000000000000..3f6abc77eb73 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0_0.nrrd.cid @@ -0,0 +1 @@ +bafkreidvf7aho4mfxzmgefrklyogbfgt64xuzw73gpgqscgp3f7ovd6x6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0_4.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0_4.nrrd.cid new file mode 100644 index 000000000000..3f6abc77eb73 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_0_4.nrrd.cid @@ -0,0 +1 @@ +bafkreidvf7aho4mfxzmgefrklyogbfgt64xuzw73gpgqscgp3f7ovd6x6e diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1.nrrd.cid new file mode 100644 index 000000000000..142a4b748ddd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1.nrrd.cid @@ -0,0 +1 @@ +bafkreieb7t6wu7qtve2swic6ggr57gsz2c7lxcbuq5ieietc57ol54nrse diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1_1.nrrd.cid new file mode 100644 index 000000000000..12aaaa64a131 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1_1.nrrd.cid @@ -0,0 +1 @@ +bafkreidxwdgpa7avi2z6ulsmfadedtah3i5uqcvuq3zetdzxxo6yguyd5q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1_2.nrrd.cid new file mode 100644 index 000000000000..6198907c273e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_1_2.nrrd.cid @@ -0,0 +1 @@ +bafkreifhah2ycit5zrr2syuijqyich5ybhvgzdnpqxajfraydibli57txm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2.nrrd.cid new file mode 100644 index 000000000000..e130610d3722 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2.nrrd.cid @@ -0,0 +1 @@ +bafkreifmkvbk3omjxku3rr4g5brghcy3s6djfifkwhfoqj54inaq4x5v4q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2_2.nrrd.cid new file mode 100644 index 000000000000..1df7d8edfd1f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2_2.nrrd.cid @@ -0,0 +1 @@ +bafkreic55uli2c6huy7o3tj7tz6lyjytr52gxxb32ov2hx5lyadw3bjkuy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2_3.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2_3.nrrd.cid new file mode 100644 index 000000000000..e130610d3722 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_C_2_3.nrrd.cid @@ -0,0 +1 @@ +bafkreifmkvbk3omjxku3rr4g5brghcy3s6djfifkwhfoqj54inaq4x5v4q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T.nrrd.cid new file mode 100644 index 000000000000..a2d1e8b8a82b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T.nrrd.cid @@ -0,0 +1 @@ +bafkreiczqvgoe4cfimivp4lkskxpb3qgp6fdjkbs4wiqn73vc6py5jupja diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0.nrrd.cid new file mode 100644 index 000000000000..ee28aa1d4c14 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0.nrrd.cid @@ -0,0 +1 @@ +bafkreiea5bn4ddihchapxnkltmniots5kd23kx4orxv7jqcsuvyg265sxu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0_0.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0_0.nrrd.cid new file mode 100644 index 000000000000..ee28aa1d4c14 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0_0.nrrd.cid @@ -0,0 +1 @@ +bafkreiea5bn4ddihchapxnkltmniots5kd23kx4orxv7jqcsuvyg265sxu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0_4.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0_4.nrrd.cid new file mode 100644 index 000000000000..ee28aa1d4c14 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_0_4.nrrd.cid @@ -0,0 +1 @@ +bafkreiea5bn4ddihchapxnkltmniots5kd23kx4orxv7jqcsuvyg265sxu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1.nrrd.cid new file mode 100644 index 000000000000..0fef665b7706 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1.nrrd.cid @@ -0,0 +1 @@ +bafkreibglpq6d54wu2pgwkf6obn5fhgbpxfaenxr3wzfbmkrxufo4wjon4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1_1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1_1.nrrd.cid new file mode 100644 index 000000000000..bbaf8ab6fd34 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1_1.nrrd.cid @@ -0,0 +1 @@ +bafkreie4fz6eqruktvl7wtdoc3mh6vmhecjl6eunxcy2kdki36um2zxnkm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1_2.nrrd.cid new file mode 100644 index 000000000000..0a903b298bbd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_1_2.nrrd.cid @@ -0,0 +1 @@ +bafkreieqfm64wkjxdkg6qcydjjgkl3xb4ayne2x34xypodrovlwxyovlxa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2.nrrd.cid new file mode 100644 index 000000000000..0e0142bb696e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2.nrrd.cid @@ -0,0 +1 @@ +bafkreiewc7s52sxanp7n5x5rqengnwsl2xiosmpemdgdtcc67shrxudue4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2_2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2_2.nrrd.cid new file mode 100644 index 000000000000..1df7d8edfd1f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2_2.nrrd.cid @@ -0,0 +1 @@ +bafkreic55uli2c6huy7o3tj7tz6lyjytr52gxxb32ov2hx5lyadw3bjkuy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2_3.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2_3.nrrd.cid new file mode 100644 index 000000000000..0e0142bb696e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/ThreeAxisFourLabelConflict_T_2_3.nrrd.cid @@ -0,0 +1 @@ +bafkreiewc7s52sxanp7n5x5rqengnwsl2xiosmpemdgdtcc67shrxudue4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_B.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_B.nrrd.cid new file mode 100644 index 000000000000..c1138e28409f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_B.nrrd.cid @@ -0,0 +1 @@ +bafkreihga2ja24eulxbuvyidzbtp5zplsts7fir7fsduuens3yvwnx5q3q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_C.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_C.nrrd.cid new file mode 100644 index 000000000000..5bec911105ec --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_C.nrrd.cid @@ -0,0 +1 @@ +bafkreidphvf3lrvaeykuctszj2hd45zsb7idwwg7prul66ybonz4s73uve diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_T.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_T.nrrd.cid new file mode 100644 index 000000000000..faffbd05f4c3 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Baseline/TwoAxisDoubleTwoLabelBC_T.nrrd.cid @@ -0,0 +1 @@ +bafkreigbkgj5kp2d3jvj7ae2v5px2kyzmurekfmy5pfandclf7tbsng6u4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/CMakeLists.txt b/Modules/Filtering/MorphologicalContourInterpolation/test/CMakeLists.txt new file mode 100644 index 000000000000..937545394dd5 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/CMakeLists.txt @@ -0,0 +1,312 @@ +if(WASI OR EMSCRIPTEN) + # Avoid RLEImage dependency for wasm builds + return() +endif() +itk_module_test() + +set( + MorphologicalContourInterpolationTests + itkMorphologicalContourInterpolationTest.cxx + itkMorphologicalContourInterpolationTestWithRLEImage.cxx +) + +createtestdriver( MorphologicalContourInterpolation "${MorphologicalContourInterpolation-Test_LIBRARIES}" "${MorphologicalContourInterpolationTests}") + +add_executable( + manualTest + manualTest.cxx + ${MorphologicalContourInterpolationTests} +) +target_link_libraries( + manualTest + ${MorphologicalContourInterpolation-Test_LIBRARIES} +) + +add_executable(dscComparison dscComparison.cxx) +target_link_libraries( + dscComparison + ${MorphologicalContourInterpolation-Test_LIBRARIES} +) + +# used to produce an output which is then taken as a baseline for a regression test +function(JustInputTest ImageName Ext) #optional: Axis Label + foreach(f ${ARGN}) # for creating unique test name + set(optArgs "${optArgs}_${f}") + endforeach() + foreach(algo B;C;T) + set(imageAlgoArgs "${ImageName}_${algo}${optArgs}") + + itk_add_test( + NAME itkMCI_JustInOut_${imageAlgoArgs} + COMMAND + MorphologicalContourInterpolationTestDriver + itkMorphologicalContourInterpolationTest + DATA{Input/${ImageName}.${Ext}} + "${ITK_TEST_OUTPUT_DIR}/${imageAlgoArgs}.${Ext}" + ${algo} + ${ARGN} + ) + endforeach() +endfunction() + +function(RegressionTest RunsLong ImageName Ext) #optional: Axis Label + foreach(f ${ARGN}) # for creating unique test name + set(optArgs "${optArgs}_${f}") + endforeach() + + # B = repeated dilations with ball structuring element + # C = repeated dilations with cross structuring element + # T = distance transform (not geodesic!) + foreach(algo B;C;T) + set(imageAlgoArgs "${ImageName}_${algo}${optArgs}") + set(outImage "${ITK_TEST_OUTPUT_DIR}/${imageAlgoArgs}.${Ext}") + # have the RLE version output the results into a different file + # otherwise parallel invocation of tests causes undeterministic failures + # when both tests try to write to the same file at the same time + set(outImageRLE "${ITK_TEST_OUTPUT_DIR}/${imageAlgoArgs}_RLE.${Ext}") + + itk_add_test( + NAME itkMCI_${imageAlgoArgs} + COMMAND + MorphologicalContourInterpolationTestDriver + --compare + DATA{Baseline/${imageAlgoArgs}.${Ext}} + ${outImage} + itkMorphologicalContourInterpolationTest + DATA{Input/${ImageName}.${Ext}} + ${outImage} + ${algo} + ${ARGN} + ) + + itk_add_test( + NAME itkMCIRLE_${imageAlgoArgs} + COMMAND + MorphologicalContourInterpolationTestDriver + --compare + DATA{Baseline/${imageAlgoArgs}.${Ext}} + ${outImageRLE} + itkMorphologicalContourInterpolationTestWithRLEImage + DATA{Input/${ImageName}.${Ext}} + ${outImageRLE} + ${algo} + ${ARGN} + ) + + set_property( + TEST + itkMCI_${imageAlgoArgs} + APPEND + PROPERTY + LABELS + MCI_PLAIN + ) + set_property( + TEST + itkMCIRLE_${imageAlgoArgs} + APPEND + PROPERTY + LABELS + MCI_RLE + ) + + if(RunsLong) + set_property( + TEST + itkMCI_${imageAlgoArgs} + APPEND + PROPERTY + LABELS + RUNS_LONG + ) + set_property( + TEST + itkMCIRLE_${imageAlgoArgs} + APPEND + PROPERTY + LABELS + RUNS_LONG + ) + endif() + endforeach() +endfunction() + +function(RegressionTestShort) + regressiontest(No ${ARGN}) +endfunction() + +function(RegressionTestLong) + regressiontest(Yes ${ARGN}) +endfunction() + +# functional comparison using Dice Similarity Coefficient +function(DSCTest ImageName Ext) + set(outFilenameBase "${ITK_TEST_OUTPUT_DIR}/${ImageName}") + + itk_add_test( + NAME itkMCI_DSC_${ImageName} + COMMAND + dscComparison + DATA{Input/${ImageName}.${Ext}} + ${outFilenameBase} + ${ARGN} + ) + set_property( + TEST + itkMCI_DSC_${ImageName} + APPEND + PROPERTY + LABELS + RUNS_LONG + ) +endfunction() + +# Handcrafted tests +regressiontestshort(Empty nrrd) +regressiontestshort(NoSlices nrrd) #interpolation should not be invoked (output==input) +regressiontestshort(Micro1 nrrd) +regressiontestshort(SimplestOneToOne nrrd) +regressiontestshort(OneToOne nrrd) +regressiontestshort(OneToThree nrrd) +regressiontestshort(ExtrapolationAppearing nrrd) +regressiontestshort(DoubleTwoLabelBranching nrrd) +regressiontestshort(TwoAxisDoubleTwoLabelBC nrrd) +regressiontestshort(AccidentalMiddleSliceSeg nrrd) +regressiontestshort(SevenLabels nrrd) +regressiontestshort(FullEnd nrrd) +regressiontestshort(1MN1 nrrd) # double sided many broken into many + 1 +regressiontestshort(ManyToMany16 nrrd) +regressiontestshort(ManyToMany nrrd) +regressiontestshort(GridSeg nrrd) +regressiontestshort(GridSeg2 nrrd) + +# Per axis/label tests +regressiontestshort(GridSeg nrrd 0) +regressiontestshort(GridSeg nrrd 1) +regressiontestshort(GridSeg nrrd 2) +regressiontestshort(GridSeg2 nrrd 0) +regressiontestshort(GridSeg2 nrrd 1) +regressiontestshort(GridSeg2 nrrd 2) +regressiontestshort(ThreeAxisFourLabelConflict nrrd) +regressiontestshort(ThreeAxisFourLabelConflict nrrd 0) +regressiontestshort(ThreeAxisFourLabelConflict nrrd 1) +regressiontestshort(ThreeAxisFourLabelConflict nrrd 2) +regressiontestshort(ThreeAxisFourLabelConflict nrrd 0 0) # equals to _0 +regressiontestshort(ThreeAxisFourLabelConflict nrrd 1 1) +regressiontestshort(ThreeAxisFourLabelConflict nrrd 2 3) # equals to _2 +regressiontestshort(ThreeAxisFourLabelConflict nrrd 0 4) # equals to _0 +regressiontestshort(ThreeAxisFourLabelConflict nrrd 1 2) +regressiontestshort(ThreeAxisFourLabelConflict nrrd 2 2) # does not modify image + +# Paul's single axis tests +regressiontestshort(105769moving nii.gz) #defaults: all axes all labels +regressiontestshort(105769moving nii.gz 2) #axis 2 +regressiontestshort(105769moving nii.gz -1 0) #all axes all labels +regressiontestshort(105769moving nii.gz -1 1) #all axes label 1 +regressiontestshort(105769moving nii.gz -1 2) #all axes label 2 +regressiontestshort(105769moving nii.gz 2 1) #axis 2 label 1 +regressiontestshort(105769moving nii.gz 2 2) #axis 2 label 2 +regressiontestshort(105769fixed nii.gz) #defaults: all axes all labels +regressiontestshort(105769fixed nii.gz 2) #axis 2 +regressiontestshort(105769fixed nii.gz -1 0) #all axes all labels +regressiontestshort(105769fixed nii.gz -1 1) #all axes label 1 +regressiontestshort(105769fixed nii.gz -1 2) #all axes label 2 +regressiontestshort(105769fixed nii.gz 2 1) #axis 2 label 1 +regressiontestshort(105769fixed nii.gz 2 2) #axis 2 label 2 + +# 64816L_amygdala_int +regressiontestshort(64816L_amygdala_int nii.gz) +regressiontestshort(64816L_amygdala_int nii.gz 0) +regressiontestshort(64816L_amygdala_int nii.gz 1) +regressiontestshort(64816L_amygdala_int nii.gz 2) +regressiontestshort(64816L_amygdala_int nii.gz 0 1) +regressiontestshort(64816L_amygdala_int nii.gz 0 2) +regressiontestshort(64816L_amygdala_int nii.gz 0 3) +regressiontestshort(64816L_amygdala_int nii.gz 0 4) +regressiontestshort(64816L_amygdala_int nii.gz 1 1) +regressiontestshort(64816L_amygdala_int nii.gz 1 2) +regressiontestshort(64816L_amygdala_int nii.gz 1 3) +regressiontestshort(64816L_amygdala_int nii.gz 1 4) +regressiontestshort(64816L_amygdala_int nii.gz 2 1) +regressiontestshort(64816L_amygdala_int nii.gz 2 2) +regressiontestshort(64816L_amygdala_int nii.gz 2 3) +regressiontestshort(64816L_amygdala_int nii.gz 2 4) + +# 64816L_amygdala_fin +regressiontestshort(64816L_amygdala_fin nii.gz) +regressiontestshort(64816L_amygdala_fin nii.gz 0) +regressiontestshort(64816L_amygdala_fin nii.gz 1) +regressiontestshort(64816L_amygdala_fin nii.gz 2) +regressiontestshort(64816L_amygdala_fin nii.gz 0 1) +regressiontestshort(64816L_amygdala_fin nii.gz 0 2) +regressiontestshort(64816L_amygdala_fin nii.gz 0 3) +regressiontestshort(64816L_amygdala_fin nii.gz 0 4) +regressiontestshort(64816L_amygdala_fin nii.gz 1 1) +regressiontestshort(64816L_amygdala_fin nii.gz 1 2) +regressiontestshort(64816L_amygdala_fin nii.gz 1 3) +regressiontestshort(64816L_amygdala_fin nii.gz 1 4) +regressiontestshort(64816L_amygdala_fin nii.gz 2 1) +regressiontestshort(64816L_amygdala_fin nii.gz 2 2) +regressiontestshort(64816L_amygdala_fin nii.gz 2 3) +regressiontestshort(64816L_amygdala_fin nii.gz 2 4) + +# 65239R_amygdala_int +regressiontestshort(65239R_amygdala_int nii.gz) +regressiontestshort(65239R_amygdala_int nii.gz 0) +regressiontestshort(65239R_amygdala_int nii.gz 1) +regressiontestshort(65239R_amygdala_int nii.gz 2) +regressiontestshort(65239R_amygdala_int nii.gz 0 1) +regressiontestshort(65239R_amygdala_int nii.gz 0 2) +regressiontestshort(65239R_amygdala_int nii.gz 0 3) +regressiontestshort(65239R_amygdala_int nii.gz 0 4) +regressiontestshort(65239R_amygdala_int nii.gz 1 1) +regressiontestshort(65239R_amygdala_int nii.gz 1 2) +regressiontestshort(65239R_amygdala_int nii.gz 1 3) +regressiontestshort(65239R_amygdala_int nii.gz 1 4) +regressiontestshort(65239R_amygdala_int nii.gz 2 1) +regressiontestshort(65239R_amygdala_int nii.gz 2 2) +regressiontestshort(65239R_amygdala_int nii.gz 2 3) +regressiontestshort(65239R_amygdala_int nii.gz 2 4) + +# 65239R_amygdala_fin +regressiontestshort(65239R_amygdala_fin nii.gz) +regressiontestshort(65239R_amygdala_fin nii.gz 0) +regressiontestshort(65239R_amygdala_fin nii.gz 1) +regressiontestshort(65239R_amygdala_fin nii.gz 2) +regressiontestshort(65239R_amygdala_fin nii.gz 0 1) +regressiontestshort(65239R_amygdala_fin nii.gz 0 2) +regressiontestshort(65239R_amygdala_fin nii.gz 0 3) +regressiontestshort(65239R_amygdala_fin nii.gz 0 4) +regressiontestshort(65239R_amygdala_fin nii.gz 1 1) +regressiontestshort(65239R_amygdala_fin nii.gz 1 2) +regressiontestshort(65239R_amygdala_fin nii.gz 1 3) +regressiontestshort(65239R_amygdala_fin nii.gz 1 4) +regressiontestshort(65239R_amygdala_fin nii.gz 2 1) +regressiontestshort(65239R_amygdala_fin nii.gz 2 2) +regressiontestshort(65239R_amygdala_fin nii.gz 2 3) +regressiontestshort(65239R_amygdala_fin nii.gz 2 4) + +# Long-running handcrafted tests +regressiontestlong(BigZ nrrd) +regressiontestlong(BigZ nrrd 0) +regressiontestlong(BigZ nrrd 1) +regressiontestlong(BigZ nrrd 2) +regressiontestlong(FaceRoI nrrd) +regressiontestlong(FaceRoI nrrd 0) +regressiontestlong(FaceRoI nrrd 1) +regressiontestlong(FaceRoI nrrd 2) + +# Non-3D tests +regressiontestshort(FourD nrrd) + +# dscComparison (crops) +dsctest(c2l mha saveImages) +dsctest(c2b mha saveImages) +dsctest(c10l mha saveImages) +dsctest(c10b mha saveImages) + +# dscComparison (full resolution) +dsctest(case_2_labels mha saveImages) +dsctest(case_2_binary mha saveImages) +dsctest(case_10_labels mha saveImages) +dsctest(case_10_binary mha saveImages) diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769fixed.nii.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769fixed.nii.cid new file mode 100644 index 000000000000..a568dc7bc25d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769fixed.nii.cid @@ -0,0 +1 @@ +bafkreieotwgiewvlbk4455vjovie5l73bbwgtzwzsl25k44sgymcpmwj64 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769fixed.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769fixed.nii.gz.cid new file mode 100644 index 000000000000..c1b77e787b35 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769fixed.nii.gz.cid @@ -0,0 +1 @@ +bafkreiam2o6wjfz3afhgctlbsx7hyhmfoetynpvrxaf7du7ks46aybxb7a diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769moving.nii.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769moving.nii.cid new file mode 100644 index 000000000000..62271c585bba --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769moving.nii.cid @@ -0,0 +1 @@ +bafkreig2z7u2iy2f7lbycmi6xxzxlf4pkivcxzrdygsrytb7gnchzpz5dq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769moving.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769moving.nii.gz.cid new file mode 100644 index 000000000000..9de52e5c62a4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/105769moving.nii.gz.cid @@ -0,0 +1 @@ +bafkreiaw3z7sthzwzqrylzlkgeeaiuycixnyvf7r64npvidjg4aj4zifja diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/16-5-16.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/16-5-16.nrrd.cid new file mode 100644 index 000000000000..8491c2146c70 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/16-5-16.nrrd.cid @@ -0,0 +1 @@ +bafkreid5drvpfp3hvgh52elyzihbrl6dnxjflmeedy54htaqcoet2cawlm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/1MN1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/1MN1.nrrd.cid new file mode 100644 index 000000000000..ffb59318f17d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/1MN1.nrrd.cid @@ -0,0 +1 @@ +bafkreibvclq5kpchthmglt7ynysg2wyysixow6hiqxm4f66fnyq5dwc3h4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/3x3x3.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/3x3x3.nrrd.cid new file mode 100644 index 000000000000..7f01b5631a24 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/3x3x3.nrrd.cid @@ -0,0 +1 @@ +bafkreihlfunkwoztlel6pl75e2pna6ih4uialxoh7cn6d2xhsxdellbua4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/64816L_amygdala_fin.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/64816L_amygdala_fin.nii.gz.cid new file mode 100644 index 000000000000..effab77ca8ef --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/64816L_amygdala_fin.nii.gz.cid @@ -0,0 +1 @@ +bafkreieap35wecvrwte67tlekps2e3sqaipkxp3yoistasgcud5alv5rbi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/64816L_amygdala_int.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/64816L_amygdala_int.nii.gz.cid new file mode 100644 index 000000000000..f11ff20486df --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/64816L_amygdala_int.nii.gz.cid @@ -0,0 +1 @@ +bafkreih3n62i3jxvfgp3cnc7hpcbg4pps5wmbhjylmqslch72oqden5mia diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/65239R_amygdala_fin.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/65239R_amygdala_fin.nii.gz.cid new file mode 100644 index 000000000000..a13744a859a6 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/65239R_amygdala_fin.nii.gz.cid @@ -0,0 +1 @@ +bafkreigivsgsf6ih4pbajhjzgcqe56bg2kzhstxmut4wwmdk3b4ppvma74 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/65239R_amygdala_int.nii.gz.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/65239R_amygdala_int.nii.gz.cid new file mode 100644 index 000000000000..1c2101f8db9e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/65239R_amygdala_int.nii.gz.cid @@ -0,0 +1 @@ +bafkreic2yt5qiradnskgynwaprqqbwbcupa6orolqeif7hsxxyhtor36ni diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/AccidentalMiddleSliceSeg.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/AccidentalMiddleSliceSeg.nrrd.cid new file mode 100644 index 000000000000..0524433a0974 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/AccidentalMiddleSliceSeg.nrrd.cid @@ -0,0 +1 @@ +bafkreiaxtsaffjn5tkl4k7ckb6pzcihplcurmxh7b2w7wa5gey7srtb3b4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/BigImage.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/BigImage.nrrd.cid new file mode 100644 index 000000000000..e7c5693fa418 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/BigImage.nrrd.cid @@ -0,0 +1 @@ +bafkreihay3yl3nvqdi45n6cil6oj5na22ym3fuxjdczon4zfh24djvgxkm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/BigZ.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/BigZ.nrrd.cid new file mode 100644 index 000000000000..8e1d39e2397c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/BigZ.nrrd.cid @@ -0,0 +1 @@ +bafkreicxxxq5id7ijz7gjcsf4bptkuawmhua5lzkngklw6i7cvmqetcfgy diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/DoubleTwoLabelBranching.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/DoubleTwoLabelBranching.nrrd.cid new file mode 100644 index 000000000000..a5b44a81d56e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/DoubleTwoLabelBranching.nrrd.cid @@ -0,0 +1 @@ +bafkreidbvt3y5kh43cv6xknxvbxisprphcrkz3c2tkflutsxwp65rrrg54 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/Empty.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/Empty.nrrd.cid new file mode 100644 index 000000000000..a1c05060c4ea --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/Empty.nrrd.cid @@ -0,0 +1 @@ +bafkreiao3slefkbe474xntfdcqd3h7ys46x6s57oz2rcmxlhuvr6shjaze diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ExtrapolationAppearing.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ExtrapolationAppearing.nrrd.cid new file mode 100644 index 000000000000..17ed51f05c8d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ExtrapolationAppearing.nrrd.cid @@ -0,0 +1 @@ +bafkreia7tutus3udpstfyuc42umiju5pbe47ko65rfglj5bgopu5iddnem diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FaceRoI.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FaceRoI.nrrd.cid new file mode 100644 index 000000000000..9474375502e4 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FaceRoI.nrrd.cid @@ -0,0 +1 @@ +bafkreiguogu3udkdgf4w7df37poxdyu37d3gs73ddstwcmh2ib3mfnzhva diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FaceRoIFinished.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FaceRoIFinished.nrrd.cid new file mode 100644 index 000000000000..a28a6f49c62f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FaceRoIFinished.nrrd.cid @@ -0,0 +1 @@ +bafkreieh7uj4pkccpldffpbdw7qkwaqw5zutdjzkaxgkmgb5deo3h2phvm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FourD.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FourD.nrrd.cid new file mode 100644 index 000000000000..58d7ba6e144a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FourD.nrrd.cid @@ -0,0 +1 @@ +bafkreie4pjm5xsmmylj4rx2wnsqdouhrt2uy42dg2j5uyrsnqyhlkwshti diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FullEnd.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FullEnd.nrrd.cid new file mode 100644 index 000000000000..0f13d758b882 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/FullEnd.nrrd.cid @@ -0,0 +1 @@ +bafkreiaysmkizkkbchnqvsqryzqdb6u4noqskjedt6fzxancbkfqap5dkq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSeg.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSeg.nrrd.cid new file mode 100644 index 000000000000..f2227647863a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSeg.nrrd.cid @@ -0,0 +1 @@ +bafkreid66yxwz3esjptirjjln5vbbkcx4wgzhadzn7zzcmj5qxkv7vzx3y diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSeg2.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSeg2.nrrd.cid new file mode 100644 index 000000000000..0ec4c31fddbd --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSeg2.nrrd.cid @@ -0,0 +1 @@ +bafkreiejnxvce4fpzhnnr3mf7dkom6wrje3pnvtfjvof56la2hv434ihhi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSegBase.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSegBase.nrrd.cid new file mode 100644 index 000000000000..96d3c7c8facc --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/GridSegBase.nrrd.cid @@ -0,0 +1 @@ +bafkreihnudlrhkyrd7uxgozsrs6xkq6t7djubyxhuva4tm5j77gxwctjhe diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ManyToMany.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ManyToMany.nrrd.cid new file mode 100644 index 000000000000..8c1944b0a17b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ManyToMany.nrrd.cid @@ -0,0 +1 @@ +bafkreickfabemvrl6jtb3ekpzcfrktoxo6hckelhchyps4qzxvjrfmuikm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ManyToMany16.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ManyToMany16.nrrd.cid new file mode 100644 index 000000000000..2c2963a46d0f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ManyToMany16.nrrd.cid @@ -0,0 +1 @@ +bafkreiddssklsl3qmc2tplaj47stii3kj4577pwm5aangircqzk5xrlqqi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/Micro1.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/Micro1.nrrd.cid new file mode 100644 index 000000000000..354a3a98b0de --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/Micro1.nrrd.cid @@ -0,0 +1 @@ +bafkreign5d5liorprtnqkn24v5h4h2mywtc7r2x3bf23fedljhukjgsprm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NDRI64816L.nii.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NDRI64816L.nii.cid new file mode 100644 index 000000000000..230a1b99cabf --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NDRI64816L.nii.cid @@ -0,0 +1 @@ +bafkreidgha5n6in63jwqzvjawbzssmd4mvabn43odkeh5xwyr2kx7w2mru diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NDRI65239R.nii.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NDRI65239R.nii.cid new file mode 100644 index 000000000000..aeb10bcde747 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NDRI65239R.nii.cid @@ -0,0 +1 @@ +bafkreicoqrtbzrdpsmhwxjdhjyranr54zxykynhqrjykjvuaevojg45mpu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NoSlices.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NoSlices.nrrd.cid new file mode 100644 index 000000000000..8eafd40f2567 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/NoSlices.nrrd.cid @@ -0,0 +1 @@ +bafkreiecd6nfaiinohionwheewuntanpfp2tan2e6srwvfqegu33yweiaa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/OneToOne.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/OneToOne.nrrd.cid new file mode 100644 index 000000000000..fe9e20000e5a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/OneToOne.nrrd.cid @@ -0,0 +1 @@ +bafkreigc7ah47bexwpuupjddb62553hmuqwbokzeneld4i7tod5ctfhm7i diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/OneToThree.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/OneToThree.nrrd.cid new file mode 100644 index 000000000000..08701d985d08 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/OneToThree.nrrd.cid @@ -0,0 +1 @@ +bafkreigwo4lnytwwp6csftahwfh5qlbsqeokpwtmqc7dkslhqvpbahaucq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/SevenLabels.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/SevenLabels.nrrd.cid new file mode 100644 index 000000000000..f0abab830410 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/SevenLabels.nrrd.cid @@ -0,0 +1 @@ +bafkreigplp4axdk7xgxl7qzz3uitlhzsmcvfic76iwn4kbngyffb7qdw4q diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/SimplestOneToOne.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/SimplestOneToOne.nrrd.cid new file mode 100644 index 000000000000..d448c5052b62 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/SimplestOneToOne.nrrd.cid @@ -0,0 +1 @@ +bafkreid4s7yrd622xpdwtfthp726loktdf43w2zvlyvbsvqwu7vyt4vs4i diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ThreeAxisFourLabelConflict.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ThreeAxisFourLabelConflict.nrrd.cid new file mode 100644 index 000000000000..19ba77d0e7ad --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/ThreeAxisFourLabelConflict.nrrd.cid @@ -0,0 +1 @@ +bafkreieftpq7fzie5nltlv7wmrchhzjuuq5e5c7f5eb6tgy5halcsazdiq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/TwoAxisDoubleTwoLabelBC.nrrd.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/TwoAxisDoubleTwoLabelBC.nrrd.cid new file mode 100644 index 000000000000..1afc7f41c270 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/TwoAxisDoubleTwoLabelBC.nrrd.cid @@ -0,0 +1 @@ +bafkreigfzlik67isgzfi7yorptkd5rr4zp3ir72jhqer6shsyu7vnjlkpa diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10.mha.cid new file mode 100644 index 000000000000..9b1196a4fe4e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10.mha.cid @@ -0,0 +1 @@ +bafkreic6bek4vpsjqmbce6cnbasrs5g4o5mqoct6noo5wgdojeyp67q7ie diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10b.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10b.mha.cid new file mode 100644 index 000000000000..8909537368ff --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10b.mha.cid @@ -0,0 +1 @@ +bafkreicsgvjkh2hmsm2qvnhg7exacqernoxrrnz4cd43e5qpy2dce5nekq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10l.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10l.mha.cid new file mode 100644 index 000000000000..068bd2f3dc9d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c10l.mha.cid @@ -0,0 +1 @@ +bafkreifxc5vpjn2fjwayllqyqrik6khssrr6e476khtmgzrydseey7l3om diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2.mha.cid new file mode 100644 index 000000000000..379285bce91c --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2.mha.cid @@ -0,0 +1 @@ +bafkreiekrb2dythoamno4ymhqvlt5ahoqvbpfw3qk7wjgxvykwec37pxte diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2b.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2b.mha.cid new file mode 100644 index 000000000000..1870e5b2e97d --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2b.mha.cid @@ -0,0 +1 @@ +bafkreiczqwssqqo7fpyjxpye3nyssqbjz7uds3xxsmhfnulnemvff6aiuu diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2l.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2l.mha.cid new file mode 100644 index 000000000000..0aed8fee5aea --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/c2l.mha.cid @@ -0,0 +1 @@ +bafkreiekdcv3i4odth7ceqtsfzo37xdcoaak45ezccelltnpcxoc4g72k4 diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_10_binary.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_10_binary.mha.cid new file mode 100644 index 000000000000..f781e222946f --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_10_binary.mha.cid @@ -0,0 +1 @@ +bafkreifpyjzaleo6kssix6pim5smyg5l4le6cao3jq2ibrgzewe337dbmq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_10_labels.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_10_labels.mha.cid new file mode 100644 index 000000000000..2af739f84556 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_10_labels.mha.cid @@ -0,0 +1 @@ +bafkreiapyugfzw2syniuvvbn6os7vaobplrr47clelwcwnbygbwcml5wdq diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_2_binary.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_2_binary.mha.cid new file mode 100644 index 000000000000..a8402b5d3e60 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_2_binary.mha.cid @@ -0,0 +1 @@ +bafkreiccykh5i54qje2nyk4rasxhsfcpjz7lverkfntpc2ieeip2sr5whi diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_2_labels.mha.cid b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_2_labels.mha.cid new file mode 100644 index 000000000000..00acba808b7e --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/Input/case_2_labels.mha.cid @@ -0,0 +1 @@ +bafkreic7tpglu6k3qnpv5omf4lg6yic4xb6hnr64vx3myiobtsbffr2gnm diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/dscComparison.cxx b/Modules/Filtering/MorphologicalContourInterpolation/test/dscComparison.cxx new file mode 100644 index 000000000000..e6000bd1a622 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/dscComparison.cxx @@ -0,0 +1,198 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#include "itkImageFileReader.h" +#include "itkImageFileWriter.h" +#include "itkMorphologicalContourInterpolator.h" +#include "itkTestDriverIncludeRequiredIOFactories.h" +#include "itkTimeProbe.h" +#include +#include +#include + +using TestPixelType = unsigned char; +constexpr unsigned int testDim = 3; +using TestImageType = itk::Image; + +TestImageType::Pointer +createSparseCopy(const TestImageType::Pointer & inImage, TestImageType::IndexType nth) +{ + const TestImageType::RegionType & lpr = inImage->GetLargestPossibleRegion(); + + TestImageType::Pointer outImage = TestImageType::New(); + outImage->CopyInformation(inImage); + outImage->SetRegions(lpr); + outImage->Allocate(true); + + itk::ImageRegionConstIterator iIt(inImage, lpr); + itk::ImageRegionIteratorWithIndex oIt(outImage, lpr); + + while (!oIt.IsAtEnd()) + { + const TestPixelType & val = iIt.Get(); + if (val) + { + const TestImageType::IndexType & ind = oIt.GetIndex(); + bool write = false; + for (unsigned axis = 0; axis < testDim; axis++) + { + if (ind[axis] % nth[axis] == 0) + { + write = true; + break; + } + } + + if (write) + { + oIt.Set(val); + } + } + ++iIt; + ++oIt; + } + + return outImage; +} + +void +calcOverlap(const TestImageType::Pointer & autoSeg, + const TestImageType::Pointer & groundTruth, + unsigned long long & tpCount, + unsigned long long & fpCount, + unsigned long long & fnCount) +{ + const TestImageType::RegionType & lpr = groundTruth->GetLargestPossibleRegion(); + + itk::ImageRegionConstIterator itAS(autoSeg, lpr); + itk::ImageRegionConstIterator itGT(groundTruth, lpr); + tpCount = 0; + fpCount = 0; + fnCount = 0; + + while (!itAS.IsAtEnd()) + { + if (itAS.Get() != 0 && itAS.Get() == itGT.Get()) + { + tpCount++; // true positive + } + else if (itAS.Get() != 0) + { + fpCount++; // false positive + } + if (itAS.Get() == 0 && itGT.Get() != 0) + { + fnCount++; // false negative + } + + ++itAS; + ++itGT; + } +} + +int +main(int argc, char * argv[]) +{ + if (argc < 2) + { + std::cerr << "Usage: " << argv[0]; + std::cerr << " inputImage [outFilenameBase] [saveIntermediateImages]\n"; + return 1; + } + bool saveImages = argc > 3; + std::string outFilenameBase; + std::fstream fout; + if (argc > 2) + { + outFilenameBase = argv[2]; + fout.open((outFilenameBase + ".csv").c_str(), std::ios::out); + } + RegisterRequiredFactories(); + + using ReaderType = itk::ImageFileReader; + ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(argv[1]); + reader->Update(); + TestImageType::Pointer inImage = reader->GetOutput(); + inImage->DisconnectPipeline(); + + using mciType = itk::MorphologicalContourInterpolator; + mciType::Pointer mci = mciType::New(); + mci->SetUseBallStructuringElement(true); // test cross? + + using WriterType = itk::ImageFileWriter; + WriterType::Pointer writer = WriterType::New(); + writer->SetUseCompression(true); + + const TestImageType::RegionType & lpr = inImage->GetLargestPossibleRegion(); + TestImageType::IndexType maxInd; + for (unsigned axis = 0; axis < testDim; axis++) + { + maxInd[axis] = itk::IndexValueType(lpr.GetSize(axis)); + } + fout << "Image, nth, axis, time, TP, FP, FN, TN\n"; + // the big for loop which does the work + for (int sparsity = 2; sparsity <= 8; sparsity++) + { + unsigned long long tpCount, fpCount, fnCount; + for (int axis = -1; axis < int(testDim); axis++) + { + mci->SetAxis(axis); + TestImageType::IndexType axisSparsity = maxInd; + if (axis < 0) // all axes + { + for (unsigned a = 0; a < testDim; a++) + { + axisSparsity[a] = sparsity; + } + } + else // just one axis + { + axisSparsity[axis] = sparsity; + } + + TestImageType::Pointer sparseImage = createSparseCopy(inImage, axisSparsity); + mci->SetInput(sparseImage); + itk::TimeProbe timeProbe; + timeProbe.Start(); + mci->Update(); + timeProbe.Stop(); + TestImageType::Pointer result = mci->GetOutput(); + result->DisconnectPipeline(); + calcOverlap(result, inImage, tpCount, fpCount, fnCount); + + fout << argv[1] << ", " << sparsity << ", " << axis << ", " << timeProbe.GetMean(); + fout << ", " << tpCount << ", " << fpCount << ", " << fnCount << ", "; + fout << (lpr.GetNumberOfPixels() - tpCount - fpCount - fnCount) << std::endl; + + if (saveImages) + { + std::cout << outFilenameBase + '_' + char(sparsity + '0') + char(axis + 'X') + "\nWriting sparse... "; + writer->SetInput(sparseImage); + writer->SetFileName(outFilenameBase + "_in" + char(sparsity + '0') + char(axis + 'X') + ".mha"); + writer->Update(); + std::cout << "interpolated... "; + writer->SetInput(result); + writer->SetFileName(outFilenameBase + "_out" + char(sparsity + '0') + char(axis + 'X') + ".mha"); + writer->Update(); + std::cout << "finished." << std::endl; + } + } + } + return 0; +} diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/itkMorphologicalContourInterpolationTest.cxx b/Modules/Filtering/MorphologicalContourInterpolation/test/itkMorphologicalContourInterpolationTest.cxx new file mode 100644 index 000000000000..960ee564e013 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/itkMorphologicalContourInterpolationTest.cxx @@ -0,0 +1,132 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#include "itkImageFileReader.h" +#include "itkImageFileWriter.h" +#include "itkMorphologicalContourInterpolator.h" +#include +#include + +template +void +doTest(std::string inFilename, std::string outFilename, bool UseDistanceTransform, bool ball, int axis, int label) +{ + using ReaderType = itk::ImageFileReader; + typename ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(inFilename); + reader->Update(); + + typename ImageType::Pointer test = reader->GetOutput(); + + using mciType = itk::MorphologicalContourInterpolator; + typename mciType::Pointer mci = mciType::New(); + mci->SetInput(test); + mci->SetUseDistanceTransform(UseDistanceTransform); + mci->SetUseBallStructuringElement(ball); + mci->SetAxis(axis); + mci->SetLabel(label); + + using WriterType = itk::ImageFileWriter; + typename WriterType::Pointer writer = WriterType::New(); + writer->SetFileName(outFilename); + writer->SetInput(mci->GetOutput()); + writer->SetUseCompression(true); + writer->Update(); +} + +int +itkMorphologicalContourInterpolationTest(int argc, char * argv[]) +{ + if (argc < 3) + { + std::cerr << "Usage: " << argv[0]; + std::cerr << " inputImage outputImage [algorithm] [axis] [label]\n"; + std::cerr << " algorithms:\n"; + std::cerr << " B = repeated dilations with ball structuring element"; + std::cerr << " C = repeated dilations with cross structuring element"; + std::cerr << " T = distance transform (not geodesic!)"; + std::cerr << " defaults: algo B, axis -1 (all axes), label 0 (all labels)"; + std::cerr << std::endl; + return EXIT_FAILURE; + } + const char * inputImageFileName = argv[1]; + const char * outputImageFileName = argv[2]; + bool dt = false; // DistanceTransform + bool ball = true; + int axis = -1, label = 0; + if (argc >= 4) + { + char algo = toupper(argv[3][0]); + if (algo == 'T') + { + dt = true; + } + else if (algo == 'C') + { + ball = false; + } + // else B + } + if (argc >= 5) + { + axis = strtol(argv[4], nullptr, 10); + } + if (argc >= 6) + { + label = strtol(argv[5], nullptr, 10); + } + + using ScalarPixelType = itk::CommonEnums::IOComponent; + itk::ImageIOBase::Pointer imageIO = + itk::ImageIOFactory::CreateImageIO(inputImageFileName, itk::CommonEnums::IOFileMode::ReadMode); + if (!imageIO) + { + std::cerr << "Could not CreateImageIO for: " << inputImageFileName << std::endl; + return EXIT_FAILURE; + } + imageIO->SetFileName(inputImageFileName); + imageIO->ReadImageInformation(); + const ScalarPixelType pixelType = imageIO->GetComponentType(); + const size_t numDimensions = imageIO->GetNumberOfDimensions(); + + try + { + // unused cases are not instantiated because they greatly increase compile time + if (numDimensions == 3 && + (pixelType == itk::CommonEnums::IOComponent::SHORT || pixelType == itk::CommonEnums::IOComponent::USHORT)) + { + doTest>(inputImageFileName, outputImageFileName, dt, ball, axis, label); + return EXIT_SUCCESS; + } + if (numDimensions == 4 && pixelType == itk::CommonEnums::IOComponent::UCHAR) + { + doTest>(inputImageFileName, outputImageFileName, dt, ball, axis, label); + return EXIT_SUCCESS; + } + + std::cerr << "Unsupported image type:\n Dimensions: " << numDimensions; + std::cerr << "\n Pixel type:" << imageIO->GetComponentTypeAsString(pixelType) << std::endl; + return EXIT_FAILURE; + } + catch (itk::ExceptionObject & error) + { + std::cerr << "Error: " << error << std::endl; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/itkMorphologicalContourInterpolationTestWithRLEImage.cxx b/Modules/Filtering/MorphologicalContourInterpolation/test/itkMorphologicalContourInterpolationTestWithRLEImage.cxx new file mode 100644 index 000000000000..aecea4e1874b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/itkMorphologicalContourInterpolationTestWithRLEImage.cxx @@ -0,0 +1,154 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#include "itkImageFileReader.h" +#include "itkImageFileWriter.h" +#include "itkMorphologicalContourInterpolator.h" +#include "itkRLEImage.h" +#include +#include + +template +void +doTest(std::string inFilename, std::string outFilename, bool UseDistanceTransform, bool ball, int axis, int label) +{ + using ReaderType = itk::ImageFileReader; + typename ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(inFilename); + reader->Update(); + + using myRLEImage = itk::RLEImage; + using inConverterType = itk::RegionOfInterestImageFilter; + typename inConverterType::Pointer inConv = inConverterType::New(); + inConv->SetInput(reader->GetOutput()); + inConv->SetRegionOfInterest(reader->GetOutput()->GetLargestPossibleRegion()); + inConv->Update(); + typename myRLEImage::Pointer test = inConv->GetOutput(); + + // region for partial coverage + typename myRLEImage::RegionType reg = test->GetLargestPossibleRegion(); + // skip X due to RLE representation constraints + // for (int i = 1; i < ImageType::ImageDimension; i++) + // { + // reg.GetModifiableIndex()[i] += (reg.GetSize(i) - 1) / 4; + // reg.SetSize(i, (reg.GetSize(i) + 1) / 2); + // } + + using mciType = itk::MorphologicalContourInterpolator; + typename mciType::Pointer mci = mciType::New(); + mci->SetInput(test); + mci->SetUseDistanceTransform(UseDistanceTransform); + mci->SetUseBallStructuringElement(ball); + mci->SetAxis(axis); + mci->SetLabel(label); + + using outConverterType = itk::RegionOfInterestImageFilter; + typename outConverterType::Pointer outConv = outConverterType::New(); + outConv->SetInput(mci->GetOutput()); + outConv->SetRegionOfInterest(reg); + outConv->Update(); + + using WriterType = itk::ImageFileWriter; + typename WriterType::Pointer writer = WriterType::New(); + writer->SetFileName(outFilename); + writer->SetInput(outConv->GetOutput()); + writer->SetUseCompression(true); + writer->Update(); +} + +int +itkMorphologicalContourInterpolationTestWithRLEImage(int argc, char * argv[]) +{ + if (argc < 3) + { + std::cerr << "Usage: " << argv[0]; + std::cerr << " inputImage outputImage [algorithm] [axis] [label]\n"; + std::cerr << " algorithms:\n"; + std::cerr << " B = repeated dilations with ball structuring element"; + std::cerr << " C = repeated dilations with cross structuring element"; + std::cerr << " T = distance transform (not geodesic!)"; + std::cerr << " defaults: algo B, axis -1 (all axes), label 0 (all labels)"; + std::cerr << std::endl; + return EXIT_FAILURE; + } + const char * inputImageFileName = argv[1]; + const char * outputImageFileName = argv[2]; + bool dt = false; // DistanceTransform + bool ball = true; + int axis = -1, label = 0; + if (argc >= 4) + { + char algo = toupper(argv[3][0]); + if (algo == 'T') + { + dt = true; + } + else if (algo == 'C') + { + ball = false; + } + // else B + } + if (argc >= 5) + { + axis = strtol(argv[4], nullptr, 10); + } + if (argc >= 6) + { + label = strtol(argv[5], nullptr, 10); + } + + using ScalarPixelType = itk::CommonEnums::IOComponent; + itk::ImageIOBase::Pointer imageIO = + itk::ImageIOFactory::CreateImageIO(inputImageFileName, itk::CommonEnums::IOFileMode::ReadMode); + if (!imageIO) + { + std::cerr << "Could not CreateImageIO for: " << inputImageFileName << std::endl; + return EXIT_FAILURE; + } + imageIO->SetFileName(inputImageFileName); + imageIO->ReadImageInformation(); + const ScalarPixelType pixelType = imageIO->GetComponentType(); + const size_t numDimensions = imageIO->GetNumberOfDimensions(); + + try + { + // unused cases are not instantiated because they greatly increase compile time + if (numDimensions == 3 && + (pixelType == itk::CommonEnums::IOComponent::SHORT || pixelType == itk::CommonEnums::IOComponent::USHORT)) + { + doTest>(inputImageFileName, outputImageFileName, dt, ball, axis, label); + return EXIT_SUCCESS; + } + if (numDimensions == 4 && pixelType == itk::CommonEnums::IOComponent::UCHAR) + { + doTest>(inputImageFileName, outputImageFileName, dt, ball, axis, label); + return EXIT_SUCCESS; + } + + std::cerr << "Unsupported image type:\n Dimensions: " << numDimensions; + std::cerr << "\n Pixel type:" << imageIO->GetComponentTypeAsString(pixelType) << std::endl; + return EXIT_FAILURE; + } + catch (itk::ExceptionObject & error) + { + std::cerr << "Error: " << error << std::endl; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} diff --git a/Modules/Filtering/MorphologicalContourInterpolation/test/manualTest.cxx b/Modules/Filtering/MorphologicalContourInterpolation/test/manualTest.cxx new file mode 100644 index 000000000000..5b6d80f2a56b --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/test/manualTest.cxx @@ -0,0 +1,33 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#ifdef _MSC_VER +# pragma warning(disable : 4996) /* deprecation */ +#endif + +#include "itkTestDriverIncludeRequiredIOFactories.h" + +extern int +itkMorphologicalContourInterpolationTest(int argc, char * argv[]); + +int +main(int argc, char * argv[]) +{ + RegisterRequiredFactories(); + itkMorphologicalContourInterpolationTest(argc, argv); +} diff --git a/Modules/Filtering/MorphologicalContourInterpolation/wrapping/CMakeLists.txt b/Modules/Filtering/MorphologicalContourInterpolation/wrapping/CMakeLists.txt new file mode 100644 index 000000000000..3771062ae86a --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/wrapping/CMakeLists.txt @@ -0,0 +1,3 @@ +itk_wrap_module(MorphologicalContourInterpolation) +itk_auto_load_submodules() +itk_end_wrap_module() diff --git a/Modules/Filtering/MorphologicalContourInterpolation/wrapping/itkMorphologicalContourInterpolator.wrap b/Modules/Filtering/MorphologicalContourInterpolation/wrapping/itkMorphologicalContourInterpolator.wrap new file mode 100644 index 000000000000..c006d6c96997 --- /dev/null +++ b/Modules/Filtering/MorphologicalContourInterpolation/wrapping/itkMorphologicalContourInterpolator.wrap @@ -0,0 +1,10 @@ +list(FIND ITK_WRAP_IMAGE_DIMS 3 _have_dim_3) +if(NOT ${_have_dim_3} EQUAL -1) + itk_wrap_class("itk::MorphologicalContourInterpolator" POINTER) + # See ITK/Wrapping/WrapBasicTypes.cmake for definition of SMALLER_THAN_SL + # Includes unsigned char, signed char, unsigned short, or short if enabled + foreach(t ${SMALLER_THAN_SL}) + itk_wrap_template("${ITKM_I${t}3}" "${ITKT_I${t}3}") + endforeach() + itk_end_wrap_class() +endif() diff --git a/Modules/Remote/MorphologicalContourInterpolation.remote.cmake b/Modules/Remote/MorphologicalContourInterpolation.remote.cmake deleted file mode 100644 index fc263538f249..000000000000 --- a/Modules/Remote/MorphologicalContourInterpolation.remote.cmake +++ /dev/null @@ -1,62 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-24 -#-- EVALUATORS: [Dženan Zukić] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [X] CI dashboards and testing monitored rigorously -#-- - [X] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [X] Meets all ITK code style standards -#-- - [X] No external requirements beyond those needed by ITK proper -#-- - [X] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [X] Windows Shared Library Build with Visual Studio -#-- - [X] Mac with clang compiller -#-- - [X] Linux with gcc compiler -#-- - [X] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [X] Continuous integration testing performed -#-- - [X] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [X] API | executable interface is considered mostly stable and feature complete -#-- - [X] 10% C0-code coverage demonstrated for testing suite -#-- - [X] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -# Contact: Dženan Zukić -itk_fetch_module( - MorphologicalContourInterpolation - "nD morphological contour interpolation - -Insight Journal article: -https://doi.org/10.54294/achtrg - -An ITK-based implementation of morphological contour interpolation based off the paper: -Albu AB, Beugeling T, Laurendeau D. -'A morphology-based approach for interslice interpolation of anatomical slices from volumetric images.' -IEEE Trans Biomed Eng. 2008 Aug;55(8):2022-38. doi: 10.1109/TBME.2008.921158. - -This work is supported by NIH grant R01 EB014346 -'Continued development and maintenance of the ITK-SNAP 3D image segmentation software'." - MODULE_COMPLIANCE_LEVEL 3 - GIT_REPOSITORY https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation.git - GIT_TAG 75c256e066e92aad42f02792218eacebf2ae13f5 - ) diff --git a/pyproject.toml b/pyproject.toml index 9f1dd62bf5ba..ad9c7f162ca4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,6 +64,7 @@ cmd = '''cmake -DModule_SplitComponents:BOOL=ON -DModule_IOMeshMZ3:BOOL=ON -DModule_IOFDF:BOOL=ON + -DModule_MorphologicalContourInterpolation:BOOL=ON -DModule_RLEImage:BOOL=ON -DITK_COMPUTER_MEMORY_SIZE:STRING=11 -DModule_StructuralSimilarity:BOOL=ON'''