ITK
6.0.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
* https://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
// For dense image level set.
41
template
<
typename
TImage,
typename
TLevelSetEvolution>
42
class
ITK_TEMPLATE_EXPORT
43
LevelSetEvolutionUpdateLevelSetsThreader
<
LevelSetDenseImage
<TImage>,
44
ThreadedImageRegionPartitioner
<TImage::ImageDimension>,
45
TLevelSetEvolution>
46
:
public
DomainThreader
<ThreadedImageRegionPartitioner<TImage::ImageDimension>, TLevelSetEvolution>
47
{
48
public
:
49
ITK_DISALLOW_COPY_AND_MOVE(
LevelSetEvolutionUpdateLevelSetsThreader
);
50
52
using
Self
=
LevelSetEvolutionUpdateLevelSetsThreader
;
53
using
Superclass
=
DomainThreader<ThreadedImageRegionPartitioner<TImage::ImageDimension>
, TLevelSetEvolution>;
54
using
Pointer
=
SmartPointer<Self>
;
55
using
ConstPointer
=
SmartPointer<const Self>
;
56
58
itkOverrideGetNameOfClassMacro(
LevelSetEvolutionUpdateLevelSetsThreader
);
59
61
itkNewMacro(
Self
);
62
64
using
typename
Superclass::DomainType;
65
using
typename
Superclass::AssociateType;
66
68
using
LevelSetEvolutionType
= TLevelSetEvolution;
69
using
LevelSetContainerType
=
typename
LevelSetEvolutionType::LevelSetContainerType;
70
using
LevelSetType
=
typename
LevelSetEvolutionType::LevelSetType;
71
using
LevelSetImageType
=
typename
LevelSetEvolutionType::LevelSetImageType;
72
using
LevelSetOutputRealType
=
typename
LevelSetEvolutionType::LevelSetOutputRealType;
73
74
protected
:
75
LevelSetEvolutionUpdateLevelSetsThreader
() =
default
;
76
77
void
78
BeforeThreadedExecution()
override
;
79
80
void
81
ThreadedExecution(
const
DomainType
& imageSubRegion,
const
ThreadIdType
threadId)
override
;
82
83
void
84
AfterThreadedExecution()
override
;
85
86
using
RMSChangeAccumulatorType
=
CompensatedSummation<LevelSetOutputRealType>
;
87
using
RMSChangeAccumulatorPerThreadType
= std::vector<RMSChangeAccumulatorType>;
88
89
RMSChangeAccumulatorPerThreadType
m_RMSChangeAccumulatorPerThread{};
90
};
91
92
}
// end namespace itk
93
94
#ifndef ITK_MANUAL_INSTANTIATION
95
# include "itkLevelSetEvolutionUpdateLevelSetsThreader.hxx"
96
#endif
97
98
#endif
itk::CompensatedSummation
Perform more precise accumulation of floating point numbers.
Definition:
itkCompensatedSummation.h:66
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
Thread 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:87
itkThreadedImageRegionPartitioner.h
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetImageType
typename LevelSetEvolutionType::LevelSetImageType LevelSetImageType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:71
itk::ThreadIdType
unsigned int ThreadIdType
Definition:
itkIntTypes.h:102
itk::LightObject
Light weight base class for most itk classes.
Definition:
itkLightObject.h:55
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetOutputRealType
typename LevelSetEvolutionType::LevelSetOutputRealType LevelSetOutputRealType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:72
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetContainerType
typename LevelSetEvolutionType::LevelSetContainerType LevelSetContainerType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:69
itk::DomainThreader< ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::DomainType
typename DomainPartitionerType::DomainType DomainType
Definition:
itkDomainThreader.h:78
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:
itkAnatomicalOrientation.h:29
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetType
typename LevelSetEvolutionType::LevelSetType LevelSetType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:70
itkDomainThreader.h
itk::LevelSetEvolutionUpdateLevelSetsThreader< LevelSetDenseImage< TImage >, ThreadedImageRegionPartitioner< TImage::ImageDimension >, TLevelSetEvolution >::LevelSetEvolutionType
TLevelSetEvolution LevelSetEvolutionType
Definition:
itkLevelSetEvolutionUpdateLevelSetsThreader.h:68
Generated on
unknown
for ITK by
1.8.16