Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
cb16434
COMP: add cmake files
glehmann Nov 9, 2005
6aae6e1
ENH: enhance default settings
glehmann Nov 9, 2005
83c42f0
ENH: add ITK as default package
glehmann Nov 9, 2005
5abd96b
ENH: more default libraires
glehmann Nov 9, 2005
f8afc41
COMP: enhance template CMakeLists.txt file
glehmann Nov 9, 2005
be2dd77
COMP: enhance template CMakeLists.txt file
glehmann Nov 9, 2005
07b994f
COMP: enhance template CMakeLists.txt file
glehmann Nov 9, 2005
6a5a02a
COMP: enhance template CMakeLists.txt file
glehmann Nov 9, 2005
6bc345a
COMP: rename test to check to avoid make warnings
glehmann Nov 21, 2005
019d432
ENH: set cthead1.png and default test.png location to images dir
glehmann Dec 29, 2005
3f9e3e7
ENH: find ImageCompare with the FIND_PROGRAM macro
glehmann Dec 29, 2005
b2179e7
ENH: make binary creation easier
glehmann Jan 18, 2006
420ea31
ENH: add wrappers support
glehmann Jan 30, 2006
5b549e6
ENH: install devel files
glehmann Jan 30, 2006
741a845
COMP: build test program only if asked by the user
glehmann Mar 13, 2006
f070515
ENH: install devel files only if requested by the user
glehmann Mar 13, 2006
834a849
ENH: make the project work as a subproject
glehmann Jul 19, 2007
53ff1cb
ENH: Repository bootstrap
Oct 16, 2007
f11e8ac
ENH: working opening filter with padding
Oct 18, 2007
53a6933
ENH: use itkTestDriver to run the tests
glehmann Feb 27, 2007
df5b110
ENH: add tests
glehmann Oct 19, 2007
d47d760
ENH: added test of image spacing based scales
Nov 15, 2007
6697cbc
ENH: working towards sharpening filter
Dec 10, 2007
d91f483
ENH: Basic sharpening operational
Jan 1, 2008
e600b01
ENH: Sharpening filter included in article
Jan 3, 2008
4066f92
ENH: working distance transform
Jan 5, 2008
dee5827
ENH: Progress meter added
Feb 17, 2008
fcfc5fe
ENH: Completed signed distnace transform timing
Feb 18, 2008
6aed596
BUG: Fixed voxel dimension weighting problems in DT
Feb 18, 2008
41d20a8
PERF: Added 3D performance figures
Sep 6, 2008
45eb705
ENH: added test 3d image
Sep 9, 2008
9558f86
ENH: Changed iterator to be without index
Dec 15, 2008
e9885f0
ENH: started binary erode filter
Jul 17, 2009
c435e27
ENH: working on binary erosion
Jul 24, 2009
d5d799b
ENH: added binary dilate
Aug 12, 2009
fe47c3e
ENH: added binary opening and closing
Apr 6, 2010
3f78d0a
ENH: rle testing
Apr 9, 2010
5252718
COMP: added closing test and removed rle from cmake
Sep 15, 2010
5dfe453
ENH: consolidation
Sep 16, 2010
79a9313
ENH: Ensuring tests run prior to change of core algorithms
richardbeare Jan 19, 2012
5f61892
ENH: almost working version of intersection algorithm - still an edge…
richardbeare Feb 29, 2012
5f22ff8
PERF: Intersection method passing tests - seems faster for DT
richardbeare Mar 2, 2012
86e94cb
ENH: Moved to subfolders
Apr 5, 2015
892157f
ENH: more moving files
Apr 6, 2015
097e0a8
COMP: cmake stuff in top level
Apr 6, 2015
28b354b
ENH: moved images
Apr 6, 2015
c8b8fb5
ENH: moved first test file
Apr 6, 2015
2392d8f
ENH: erode test
Apr 6, 2015
f1ba212
ENH: dilate test
Apr 6, 2015
976a5cb
ENH: first atttempt at a test
Apr 6, 2015
e10a0d3
ENH: started adding test dependencies
Apr 7, 2015
ed48a30
ENH: started adding test dependencies
Apr 7, 2015
831a09c
ENH: started adding test dependencies
Apr 7, 2015
c09da0e
STYLE: renamed src to include
Apr 7, 2015
6048596
ENH: thresholding dependency
Apr 7, 2015
cc6e8ad
ENH: Removing watershed progress meter
Apr 7, 2015
7187607
ENH: removed .txx
Apr 7, 2015
3c2b6fe
ENH: missing include
Apr 7, 2015
19fc83e
ENH: changed function namespace to functor
Apr 7, 2015
a455e1f
ENH: Missing include
Apr 7, 2015
18d6ae8
ENH: forgot one reference to function
Apr 7, 2015
6e7d0ff
ENH: forgot another reference to function
Apr 7, 2015
5c4a46e
COMP: removing warnings and a missing include
Apr 7, 2015
39ccebc
ENH: Baseline image for erosion test.
Apr 7, 2015
90bc66b
ENH: added second compare
Apr 7, 2015
10ddc51
ENH: corrected method return type
Apr 7, 2015
c4bb56c
ENH: corrected path for baseline image
Apr 7, 2015
bfdbf2d
ENH: corrected path for baseline image - typo
Apr 7, 2015
a54b25f
ENH: more erode and dilate tests
Apr 7, 2015
a76fb56
ENH: typo in test names
Apr 7, 2015
bdeed76
ENH: added baseline images
Apr 7, 2015
fa5e7e2
ENH: opening test
Apr 7, 2015
24725fb
COMP: typo in cmake
Apr 7, 2015
eb2b13d
ENH: added opening test image
Apr 7, 2015
109ce19
ENH: spacing test
Apr 8, 2015
685b194
ENH: sharpen test
Apr 8, 2015
2450901
ENH: removed plotutils.h
Apr 8, 2015
c097aee
ENH: added mm dependency
Apr 8, 2015
764dbf6
ENH: added smoothing dependency
Apr 8, 2015
27508a5
ENH: added baseline images for sharpening
Apr 8, 2015
5532106
ENH: basic DT test
Apr 8, 2015
a16f6a2
ENH: removed redundant image save
Apr 8, 2015
517f4cf
ENH: corrected arg count
Apr 8, 2015
7bd8e66
ENH: forgot outside value
Apr 8, 2015
166ceea
ENH: incorrect arg count check
Apr 8, 2015
f4ea6a0
ENH: baseline dt images
Apr 8, 2015
b59eb95
ENH: binary dilate test
May 7, 2015
c972044
ENH: binary dilate test
May 7, 2015
768f476
ENH: binary dilate test
May 7, 2015
3c1cdd8
ENH: binary dilate test
May 7, 2015
29b3653
ENH: binary dilate test
May 7, 2015
bc5b0fb
ENH: binary dilate test
May 7, 2015
e894b59
ENH: binary erode test
May 7, 2015
ee703ae
ENH: binary erode test
May 7, 2015
e150c71
ENH: binary erode test
May 7, 2015
a41a40b
ENH: binary erode test
May 7, 2015
bcac727
ENH: binary opening test
May 7, 2015
6a3b558
ENH: binary opening test
May 7, 2015
8fd5185
ENH: binary opening test
May 7, 2015
64df77c
ENH: binary closing test
May 7, 2015
554ff26
ENH: binary opening test
May 7, 2015
e03e565
ENH: changed email contact
May 12, 2015
31b9180
STYLE: renamed wrapping
May 13, 2015
404a5b8
DOC: updated comments to include handle for IJ article
May 13, 2015
479cec5
DOC: Added ingroup option to doxygen comments
May 13, 2015
c770381
ENH: more ingroups added
May 13, 2015
7dbc5d2
ENH: Merge pull request #1 from richardbeare/master
richardbeare May 13, 2015
b7f4b76
ENH: put the links in thr group documentation
May 13, 2015
de9022a
ENH: Merge github.com:InsightSoftwareConsortium/parabolicMorphology
May 13, 2015
2c9f754
STYLE: KWStyle and uncrust
May 18, 2015
69eb2a4
DOC: license
May 18, 2015
22fcfd0
ENH: KW and uncrust
May 18, 2015
3cd6abd
ENH: KW and uncrust
May 18, 2015
97a17f4
DOC: license
May 18, 2015
82a18e3
ENH: missed one
May 18, 2015
13caea5
COMP: Escape @article in doxygen comments.
thewtex Jun 29, 2015
6788b93
ENH: Merge pull request #1 from InsightSoftwareConsortium/master
richardbeare Jul 6, 2015
4c65d98
STYLE: Use Macro for Function Deletion
zachary-williamson Jun 30, 2016
b638651
ENH: Merge pull request #2 from zachary-williamson/master
thewtex Jun 30, 2016
46c918d
COMP: Remove override warnings
hjmjohnson Dec 15, 2017
2e24903
ENH: Merge pull request #3 from InsightSoftwareConsortium/AddITK_OVER…
hjmjohnson Dec 15, 2017
965b2e8
ENH: change spacing back to original
Jan 9, 2018
3db38b9
ENH: Merge pull request #4 from richardbeare/SpacingTestsFix
hjmjohnson Jan 22, 2018
5b15675
ENH: ITKv5 override consistency
hjmjohnson Dec 17, 2017
89aa5e5
COMP: Use C++11 override directly
hjmjohnson Dec 17, 2017
dc9873e
ENH: Merge pull request #5 from InsightSoftwareConsortium/ITKv5
thewtex Jan 22, 2018
787b644
STYLE: Modernize to C++11 conventions
hjmjohnson Feb 12, 2018
5dd2520
STYLE: Merge pull request #6 from InsightSoftwareConsortium/ITKv5Style
hjmjohnson Feb 12, 2018
175e055
STYLE: Replace itkStaticConstMacro with static constexpr
hjmjohnson Feb 13, 2018
aa01a0f
STYLE: Prefer C++11 type alias over typedef
hjmjohnson Feb 13, 2018
645bfa9
STYLE: Merge pull request #7 from InsightSoftwareConsortium/ITKv5Style
hjmjohnson Feb 13, 2018
cf91a98
STYLE: Prefer constexpr for const numeric literals
hjmjohnson Feb 13, 2018
97905e1
STYLE: Merge pull request #8 from InsightSoftwareConsortium/ITKv5Style
hjmjohnson Feb 13, 2018
c62fd5d
ENH: Add support for independent module builds
thewtex Mar 18, 2018
7d33664
COMP: Address change in GetMultiThreader return type
thewtex Mar 18, 2018
b9d6591
COMP: Merge pull request #9 from thewtex/build-against-itk-master
thewtex Mar 19, 2018
9d75439
ENH: Synchronise with the main ITK repo
Mar 21, 2018
1e99b79
BUG: Bounds type in GenerateData() needs to be of type PadFilterType:…
Mar 27, 2018
29909bd
ENH: Merge pull request #4 from fbudin69500/BUG_Bounds_Type
richardbeare Mar 27, 2018
41f6d6f
BUG: Missing typename
Mar 28, 2018
b74d1cb
ENH: Merge pull request #5 from fbudin69500/missing_typename
richardbeare Mar 28, 2018
ce3d7f9
COMP: Move ITK_DISALLOW_COPY_AND_ASSIGN calls to public section.
Apr 14, 2018
aee95d7
ENH: Merge pull request #11 from jhlegarreta/MoveDISALLOWCOPYANDASSIG…
hjmjohnson Apr 14, 2018
53e704e
BUG: Fix test errors steming from the new multi-threading mechanism.
May 21, 2018
5a725e9
ENH: Merge pull request #13 from jhlegarreta/FixPoolMultiThreaderErrors
thewtex May 27, 2018
6e3c949
BUG: Initialize the dynamic multi-threading member variable.
May 28, 2018
9e860ef
ENH: Merge pull request #14 from jhlegarreta/InitializeDynamicMultiTh…
thewtex May 29, 2018
7b98976
COMP: Adapt to new multi-threading naming convention.
jhlegarreta Sep 30, 2018
2ed4577
COMP: fix building with current master
dzenanz Oct 20, 2018
15588c3
COMP: Merge pull request #20 from dzenanz/fixBuild
thewtex Oct 22, 2018
20ad668
COMP: Prefer C++11 math over vcl_*
hjmjohnson Nov 1, 2018
97f9849
ENH: Merge pull request #7 from InsightSoftwareConsortium/prefer-cxx1…
richardbeare Nov 1, 2018
72a573c
ENH: Merge pull request #21 from InsightSoftwareConsortium/prefer-cxx…
thewtex Nov 2, 2018
4b2286e
COMP: Future proof vnl_math_XXX function usage.
hjmjohnson Nov 3, 2018
52bda90
ENH: Merge pull request #8 from InsightSoftwareConsortium/replace-vnl…
richardbeare Nov 3, 2018
cc0e17c
STYLE: Prefer error checked std::sto[id] over ato[if].
jhlegarreta Nov 2, 2018
6912b3a
ENH: Add CI configuration files.
jhlegarreta Sep 30, 2018
47623c7
ENH: Merge pull request #15 from jhlegarreta/AddCI
thewtex Nov 10, 2018
aa285b9
BUG: Don't use StatisticsImageFilter output image
blowekamp May 16, 2019
175e0fb
ENH: Merge pull request #26 from blowekamp/UpdateStatisticsFilterUsage
dzenanz May 17, 2019
2cabfdd
STYLE: Use "typename" for template parameters.
jhlegarreta Oct 20, 2018
b4ca9ba
ENH: Merge pull request #19 from jhlegarreta/UseTypenameKeywordConsis…
dzenanz May 18, 2019
4d9e570
ENH: Add .gitattributes to allow running ITK clang-formatting scripts
hjmjohnson Feb 19, 2020
bbf70da
STYLE: Prefer = default to explicitly trivial implementations
hjmjohnson Feb 17, 2020
65168ee
STYLE: Remove redundant void argument lists
hjmjohnson Feb 17, 2020
77ff119
DOC: Update copyright assignment to NumFOCUS
hjmjohnson Feb 19, 2020
ffd4b7d
BUG: Fix test errors resulting from incorrect multi-threading format.
mseng10 Apr 14, 2020
6546259
BUG: Fix failing KWStyle check.
mseng10 Apr 14, 2020
addef2c
COMP: Remove deprecated dynamic exception specification
thewtex May 13, 2020
57e794e
ENH: Merge pull request #29 from InsightSoftwareConsortium/github-act…
thewtex May 13, 2020
c29cd81
ENH: Add wrapping for MorphologicalSharpeningImageFilter
thewtex Jun 9, 2020
6cd6abd
COMP: Replace ITK_EXPORT with ITK_TEMPLATE_EXPORT
thewtex Jun 9, 2020
5fe192d
ENH: Merge pull request #32 from thewtex/wrap-sharpen
thewtex Jun 9, 2020
559ffe9
STYLE: Rename ITK_DISALLOW_COPY_AND_ASSIGN to ITK_DISALLOW_COPY_AND_MOVE
mseng10 Oct 14, 2020
5c70742
COMP: Remove inclusion of .hxx files as headers
hjmjohnson Dec 17, 2021
273bba3
ENH: Bump ITK and replace http with https using script
tbirdso May 31, 2022
383ec49
BUG: Distance filters should only be wrapped for real outputs
thewtex Feb 15, 2023
d0f5700
ENH: Merge pull request #42 from thewtex/distance-output-float
thewtex Feb 15, 2023
7233b04
BUG: Fix memory leaks by moving `progress` from the heap to the stack
N-Dekker Jul 2, 2024
e545729
STYLE: Remove m_Extreme and m_MagnitudeSign data members
N-Dekker Jul 3, 2024
471a56d
ENH: Merge pull request #46 from N-Dekker/Remove-m_Extreme-m_Magnitud…
thewtex Jul 12, 2024
652cf93
BUG: Merge pull request #45 from N-Dekker/itk-fork-Fix-progress-leak
thewtex Jul 12, 2024
f30e1a3
STYLE: Compute numberOfRows only for the current dimension
N-Dekker Jul 19, 2024
4e07f12
STYLE: Remove unused local `count` variables from `doOneDimension`
N-Dekker Aug 15, 2024
61033f1
ENH: Merge pull request #49 from N-Dekker/Remove-unused-count-variables
thewtex Aug 27, 2024
ebe05c5
ENH: Merge pull request #48 from N-Dekker/NumberOfRows-only-for-Curre…
thewtex Aug 27, 2024
d1f93b9
COMP: Replace deprecated MultiThreaderType with itk::MultiThreaderBase
hjmjohnson Apr 3, 2026
b660d92
ENH: Merge pull request #51 from InsightSoftwareConsortium/update-ci-…
thewtex Apr 8, 2026
3ab9b3a
ENH: Ingest ITKParabolicMorphology into Modules/Filtering
hjmjohnson May 12, 2026
28ef0b2
DOC: Add ParabolicMorphology README pointing at upstream
hjmjohnson May 12, 2026
eb30d60
COMP: Remove ParabolicMorphology .remote.cmake (in-tree)
hjmjohnson May 12, 2026
e672b9f
ENH: Enable Module_ParabolicMorphology in configure-ci
hjmjohnson May 12, 2026
7e5d654
DOC: Add Beare 2008 IJ reference to ParabolicMorphology README
hjmjohnson May 12, 2026
5943436
COMP: Restore ParabolicMorphology DESCRIPTION and add maintainer
hjmjohnson May 12, 2026
8f05613
ENH: Add Python wrapping for ParabolicMorphology binary filters
hjmjohnson May 12, 2026
c1444da
STYLE: Remove unused IJMacros.txt scaffolding from ParabolicMorpholog…
hjmjohnson May 12, 2026
883a885
STYLE: Rename Binary*Para to Binary*Parabolic for naming consistency
hjmjohnson May 12, 2026
c897d2d
STYLE: Address dzenanz/greptile review on ParabolicMorphology
hjmjohnson May 12, 2026
322bf46
Merge branch 'main' into ingest-ParabolicMorphology
hjmjohnson May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Modules/Filtering/ParabolicMorphology/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
project(ParabolicMorphology)

itk_module_impl()
29 changes: 29 additions & 0 deletions Modules/Filtering/ParabolicMorphology/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# ParabolicMorphology

In-tree ITK module providing fast mathematical morphology using
parabolic structuring functions. Implements distance transforms,
binary erosions, dilations, openings, closings by spheres, grayscale
operations, and sharpenings in linear time per pixel via
separable parabolic filtering.

## Origin

Ingested from the standalone remote module
[**InsightSoftwareConsortium/ITKParabolicMorphology**](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology)
on 2026-05-12, following the v4 ingestion guidelines defined in
InsightSoftwareConsortium/ITK#6204. The upstream repository will be
archived read-only after this PR merges; it remains reachable at the
URL above for historical reference (notably the `doc/`, `examples/`,
and `oldtests/` directories, which were intentionally left in the
upstream archive).

## References

- Beare R. *Morphology with parabolic structuring elements.* The
Insight Journal. January-June. 2008.
<https://hdl.handle.net/1926/1370>
- Beare R., Jackway P. *Parabolic Morphology in ITK.* The Insight
Journal. 2012. <https://doi.org/10.54294/aq68pt>
- Felzenszwalb P., Huttenlocher D. *Distance Transforms of Sampled
Functions.* Theory of Computing 8(19), 415-428, 2012.
<https://doi.org/10.4086/toc.2012.v008a019>
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
/*=========================================================================
*
* 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 itkBinaryCloseParabolicImageFilter_h
#define itkBinaryCloseParabolicImageFilter_h

#include "itkParabolicErodeImageFilter.h"
#include "itkParabolicDilateImageFilter.h"
#include "itkGreaterEqualValImageFilter.h"
#include "itkBinaryThresholdImageFilter.h"

namespace itk
{
/**
* \class BinaryCloseParabolicImageFilter
* \brief Class for binary morphological opening operation.
*
* This class uses the parabolic morphology operations to do very
* efficient erosions by circles/spheres. The operations are efficient
* because the underlying parabolic operations are separable and
* the operations are implicitly short circuited in comparison to a
* full distance transform approach.
*
* The basic idea is that a binary erosion or dilation by a circle/sphere
* can be carried out by thresholding a distance transform. By using
* the parabolic filters we can avoid computing the entire distance
* transform and instead only compute the subset we are interested
* in.
*
* Note that the circles and spheres may not be quite what you
* expect, because this class doesn't explicitly use Bresenham circles
* as most of the others do. A voxel's centre needs to be less than or
* equal to the circle radius, rather than any part of the voxel
* inside the circle.
*
* Also note that the inputs must be 0/1 not 0/max for pixel type.
*
* This filter was developed as a result of discussions with
* M.Starring on the ITK mailing list.
*
* Core methods described in the InsightJournal article:
* "Morphology with parabolic structuring elements"
*
* https://hdl.handle.net/1926/1370
*
* \sa itkParabolicErodeImageFilter
*
* \ingroup ParabolicMorphology
*
* \author Richard Beare, Department of Medicine, Monash University,
* Australia. <Richard.Beare@monash.edu>
**/

template <typename TInputImage, typename TOutputImage = TInputImage>
class ITK_TEMPLATE_EXPORT BinaryCloseParabolicImageFilter : public ImageToImageFilter<TInputImage, TOutputImage>

{
public:
ITK_DISALLOW_COPY_AND_MOVE(BinaryCloseParabolicImageFilter);

/** Standard class type alias. */
using Self = BinaryCloseParabolicImageFilter;
using Superclass = ImageToImageFilter<TInputImage, TOutputImage>;
using Pointer = SmartPointer<Self>;
using ConstPointer = SmartPointer<const Self>;

/** Method for creation through the object factory. */
itkNewMacro(Self);

/** Runtime information support. */
itkTypeMacro(BinaryCloseParabolicImageFilter, ImageToImageFilter);

/** Pixel Type of the input image */
using InputImageType = TInputImage;
using OutputImageType = TOutputImage;
using PixelType = typename TInputImage::PixelType;
using RealType = typename NumericTraits<PixelType>::RealType;
using ScalarRealType = typename NumericTraits<PixelType>::ScalarRealType;
using OutputPixelType = typename TOutputImage::PixelType;

/** Smart pointer type alias support. */
using InputImagePointer = typename TInputImage::Pointer;
using InputImageConstPointer = typename TInputImage::ConstPointer;

using InternalRealType = typename NumericTraits<PixelType>::FloatType;
// perhaps a bit dodgy, change to int if you want to do enormous
// binary operations
using InternalIntType = short;

/** Image dimension. */
static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;

using RadiusType = typename itk::FixedArray<ScalarRealType, TInputImage::ImageDimension>;

void
SetRadius(ScalarRealType radius);

itkSetMacro(Radius, RadiusType);
itkGetConstReferenceMacro(Radius, RadiusType);

void
SetUseImageSpacing(bool g)
{
m_RectErode->SetUseImageSpacing(g);
m_RectDilate->SetUseImageSpacing(g);
m_CircErode->SetUseImageSpacing(g);
m_CircDilate->SetUseImageSpacing(g);
}

/**
* Set/Get whether the erosion is circular/rectangular -
* default is true (circular)
*/
itkSetMacro(Circular, bool);
itkGetConstReferenceMacro(Circular, bool);
itkBooleanMacro(Circular);

/** A safe border is added to input image to avoid borders effects
* and remove it once the closing is done */
itkSetMacro(SafeBorder, bool);
itkGetConstReferenceMacro(SafeBorder, bool);
itkBooleanMacro(SafeBorder);

/** Image related type alias. */

/* add in the traits here */
protected:
void
GenerateData() override;

BinaryCloseParabolicImageFilter();
~BinaryCloseParabolicImageFilter() override = default;
void
PrintSelf(std::ostream & os, Indent indent) const override;

using InternalRealImageType = typename itk::Image<InternalRealType, InputImageType::ImageDimension>;
using InternalIntImageType = typename itk::Image<InternalIntType, InputImageType::ImageDimension>;
using CircErodeType = typename itk::ParabolicErodeImageFilter<TInputImage, InternalRealImageType>;
using RectErodeType = typename itk::ParabolicErodeImageFilter<TInputImage, InternalIntImageType>;
using CircDilateType = typename itk::ParabolicDilateImageFilter<OutputImageType, InternalRealImageType>;
using RectDilateType = typename itk::ParabolicDilateImageFilter<OutputImageType, InternalRealImageType>;

using CCastTypeA = typename itk::GreaterEqualValImageFilter<InternalRealImageType, OutputImageType>;
using CCastTypeB = typename itk::BinaryThresholdImageFilter<InternalRealImageType, OutputImageType>;

using RCastTypeA = typename itk::GreaterEqualValImageFilter<InternalIntImageType, OutputImageType>;
using RCastTypeB = typename itk::BinaryThresholdImageFilter<InternalRealImageType, OutputImageType>;

private:
RadiusType m_Radius;
bool m_Circular;
bool m_SafeBorder;

typename CircErodeType::Pointer m_CircErode;
typename CircDilateType::Pointer m_CircDilate;

typename CCastTypeA::Pointer m_CircCastA;
typename CCastTypeB::Pointer m_CircCastB;

typename RectErodeType::Pointer m_RectErode;
typename RectDilateType::Pointer m_RectDilate;

typename RCastTypeA::Pointer m_RectCastA;
typename RCastTypeB::Pointer m_RectCastB;
};
} // end namespace itk

#ifndef ITK_MANUAL_INSTANTIATION
# include "itkBinaryCloseParabolicImageFilter.hxx"
#endif

#endif //__itkBinaryCloseParabolicImageFilter_h
Loading
Loading