ITK
5.2.0
Insight Toolkit
ITK
Modules
Segmentation
LevelSetsv4
include
itkLevelSetEvolutionUpdateLevelSetsThreader.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright NumFOCUS
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0.txt
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*=========================================================================*/
18
#ifndef itkLevelSetEvolutionUpdateLevelSetsThreader_h
19
#define itkLevelSetEvolutionUpdateLevelSetsThreader_h
20
21
#include "
itkCompensatedSummation.h
"
22
#include "
itkDomainThreader.h
"
23
#include "
itkLevelSetDenseImage.h
"
24
#include "
itkThreadedImageRegionPartitioner.h
"
25
26
namespace
itk
27
{
28
37
template
<
typename
TLevelSet,
typename
TDomainPartitioner,
typename
TLevelSetEvolution>
38
class
ITK_TEMPLATE_EXPORT
LevelSetEvolutionUpdateLevelSetsThreader
39
{};
40
41
// For dense image level set.
42
template
<
typename
TImage,
typename
TLevelSetEvolution>
43
class
ITK_TEMPLATE_EXPORT
44
LevelSetEvolutionUpdateLevelSetsThreader
<
LevelSetDenseImage
<TImage>,
45
ThreadedImageRegionPartitioner
<TImage::ImageDimension>,
46
TLevelSetEvolution>
47
:
public
DomainThreader
<ThreadedImageRegionPartitioner<TImage::ImageDimension>, TLevelSetEvolution>
48
{
49
public
:
50
ITK_DISALLOW_COPY_AND_MOVE(
LevelSetEvolutionUpdateLevelSetsThreader
);
51
53
using
Self
=
LevelSetEvolutionUpdateLevelSetsThreader
;
54
using
Superclass
=
DomainThreader<ThreadedImageRegionPartitioner<TImage::ImageDimension>
, TLevelSetEvolution>;
55
using
Pointer
=
SmartPointer<Self>
;
56
using
ConstPointer
=
SmartPointer<const Self>
;
57
59
itkTypeMacro(
LevelSetEvolutionUpdateLevelSetsThreader
,
DomainThreader
);
60
62
itkNewMacro(
Self
);
63
65
using
DomainType
=
typename
Superclass::DomainType;
66
using
AssociateType
=
typename
Superclass::AssociateType;
67
69
using
LevelSetEvolutionType
= TLevelSetEvolution;
70
using
LevelSetContainerType
=
typename
LevelSetEvolutionType::LevelSetContainerType;
71
using
LevelSetType
=
typename
LevelSetEvolutionType::LevelSetType;
72
using
LevelSetImageType
=
typename
LevelSetEvolutionType::LevelSetImageType;
73
using
LevelSetOutputRealType
=
typename
LevelSetEvolutionType::LevelSetOutputRealType;
74
75
protected
:
76
LevelSetEvolutionUpdateLevelSetsThreader
() =
default
;
77
78
void
79
BeforeThreadedExecution()
override
;
80
81
void
82
ThreadedExecution(
const
DomainType
& imageSubRegion,
const
ThreadIdType
threadId)
override
;
83
84
void
85
AfterThreadedExecution()
override
;
86
87
using
RMSChangeAccumulatorType
=
CompensatedSummation<LevelSetOutputRealType>
;
88
using
RMSChangeAccumulatorPerThreadType
= std::vector<RMSChangeAccumulatorType>;
89
90
RMSChangeAccumulatorPerThreadType
m_RMSChangeAccumulatorPerThread
;
91
};
92
93
}
// end namespace itk
94
95
#ifndef ITK_MANUAL_INSTANTIATION
96
# include "itkLevelSetEvolutionUpdateLevelSetsThreader.hxx"
97
#endif
98
99
#endif
itk::CompensatedSummation
Perform more precise accumulation of floating point numbers.
Definition:
itkCompensatedSummation.h:66
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::m_RMSChangeAccumulatorPerThread
RMSChangeAccumulatorPerThreadType m_RMSChangeAccumulatorPerThread
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:90
itk::LevelSetDenseImage
Base class for the "dense" representation of a level-set function on one image.
Definition:
itkLevelSetDenseImage.h:41
itk::ThreadedImageRegionPartitioner
Class for partitioning of an ImageRegion.
Definition:
itkThreadedImageRegionPartitioner.h:45
itk::LevelSetEvolutionUpdateLevelSetsThreader
Threade the UpdateLevelSets method.
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:38
itk::SmartPointer< Self >
itkCompensatedSummation.h
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::RMSChangeAccumulatorPerThreadType
std::vector< RMSChangeAccumulatorType > RMSChangeAccumulatorPerThreadType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:88
itkThreadedImageRegionPartitioner.h
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetImageType
typename LevelSetEvolutionType::LevelSetImageType LevelSetImageType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:72
itk::ThreadIdType
unsigned int ThreadIdType
Definition:
itkIntTypes.h:99
itk::LightObject
Light weight base class for most itk classes.
Definition:
itkLightObject.h:59
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::DomainType
typename Superclass::DomainType DomainType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:65
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetOutputRealType
typename LevelSetEvolutionType::LevelSetOutputRealType LevelSetOutputRealType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:73
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetContainerType
typename LevelSetEvolutionType::LevelSetContainerType LevelSetContainerType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:70
itkLevelSetDenseImage.h
itk::DomainThreader
Multi-threaded processing on a domain by processing sub-domains per thread.
Definition:
itkDomainThreader.h:66
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnnulusOperator.h:24
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetType
typename LevelSetEvolutionType::LevelSetType LevelSetType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:71
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::AssociateType
typename Superclass::AssociateType AssociateType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:66
itkDomainThreader.h
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetEvolutionType
TLevelSetEvolution LevelSetEvolutionType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:69
Generated on Thu Apr 1 2021 01:54:10 for ITK by
1.8.16