ITK  5.2.0
Insight Toolkit
itkJointHistogramMutualInformationComputeJointPDFThreader.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 itkJointHistogramMutualInformationComputeJointPDFThreader_h
19 #define itkJointHistogramMutualInformationComputeJointPDFThreader_h
20 
24 
25 namespace itk
26 {
27 
43 template <typename TDomainPartitioner, typename TJointHistogramMetric>
45 {};
46 
51 template <typename TJointHistogramMetric>
53  ThreadedImageRegionPartitioner<TJointHistogramMetric::VirtualImageDimension>,
54  TJointHistogramMetric>
56  ThreadedImageRegionPartitioner<TJointHistogramMetric::VirtualImageDimension>,
57  TJointHistogramMetric>
58 {
59 public:
61 
66  TJointHistogramMetric>;
69 
72 
73  itkNewMacro(Self);
74 
76  using DomainType = typename Superclass::DomainType;
77  using AssociateType = typename Superclass::AssociateType;
78 
79  using VirtualImageType = typename Superclass::VirtualImageType;
80  using VirtualIndexType = typename Superclass::VirtualIndexType;
81  using VirtualPointType = typename Superclass::VirtualPointType;
82 
83 protected:
85 
87  void
88  ThreadedExecution(const DomainType & imageSubRegion, const ThreadIdType threadId) override;
89 };
90 
95 template <typename TJointHistogramMetric>
96 class ITK_TEMPLATE_EXPORT
98  : public JointHistogramMutualInformationComputeJointPDFThreaderBase<ThreadedIndexedContainerPartitioner,
99  TJointHistogramMetric>
100 {
101 public:
102  ITK_DISALLOW_COPY_AND_MOVE(JointHistogramMutualInformationComputeJointPDFThreader);
103 
107  TJointHistogramMetric>;
110 
113 
114  itkNewMacro(Self);
115 
117  using DomainType = typename Superclass::DomainType;
118  using AssociateType = typename Superclass::AssociateType;
119 
120  using VirtualImageType = typename Superclass::VirtualImageType;
121  using VirtualIndexType = typename Superclass::VirtualIndexType;
122  using VirtualPointType = typename Superclass::VirtualPointType;
123 
124  using JointHistogramMetricType = TJointHistogramMetric;
125  using VirtualPointSetType = typename JointHistogramMetricType::VirtualPointSetType;
126 
127 protected:
129 
131  void
132  ThreadedExecution(const DomainType & indexSubRange, const ThreadIdType threadId) override;
133 };
134 } // end namespace itk
135 
136 #endif
137 
138 #ifndef ITK_MANUAL_INSTANTIATION
139 #include "itkJointHistogramMutualInformationComputeJointPDFThreader.hxx"
140 #endif
itkJointHistogramMutualInformationComputeJointPDFThreaderBase.h
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedImageRegionPartitioner< TJointHistogramMetric::VirtualImageDimension >, TJointHistogramMetric >::VirtualIndexType
typename Superclass::VirtualIndexType VirtualIndexType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:80
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::JointHistogramMetricType
TJointHistogramMetric JointHistogramMetricType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:124
itkThreadedIndexedContainerPartitioner.h
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedImageRegionPartitioner< TJointHistogramMetric::VirtualImageDimension >, TJointHistogramMetric >::AssociateType
typename Superclass::AssociateType AssociateType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:77
itk::ThreadedImageRegionPartitioner
Class for partitioning of an ImageRegion.
Definition: itkThreadedImageRegionPartitioner.h:45
itk::ThreadedIndexedContainerPartitioner
Partitions an indexed container.
Definition: itkThreadedIndexedContainerPartitioner.h:45
itk::SmartPointer< Self >
itk::JointHistogramMutualInformationComputeJointPDFThreaderBase
Compute the JointPDF image.
Definition: itkJointHistogramMutualInformationComputeJointPDFThreaderBase.h:36
itkThreadedImageRegionPartitioner.h
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::VirtualPointSetType
typename JointHistogramMetricType::VirtualPointSetType VirtualPointSetType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:125
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::VirtualIndexType
typename Superclass::VirtualIndexType VirtualIndexType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:121
itk::ThreadIdType
unsigned int ThreadIdType
Definition: itkIntTypes.h:99
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::VirtualPointType
typename Superclass::VirtualPointType VirtualPointType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:122
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedImageRegionPartitioner< TJointHistogramMetric::VirtualImageDimension >, TJointHistogramMetric >::VirtualPointType
typename Superclass::VirtualPointType VirtualPointType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:81
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedImageRegionPartitioner< TJointHistogramMetric::VirtualImageDimension >, TJointHistogramMetric >::DomainType
typename Superclass::DomainType DomainType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:76
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::DomainType
typename Superclass::DomainType DomainType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:117
itk::JointHistogramMutualInformationComputeJointPDFThreader
Provide a threaded computation of the joint PDF for JointHistogramMutualInformationImageToImageMetric...
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:44
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::AssociateType
typename Superclass::AssociateType AssociateType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:118
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedIndexedContainerPartitioner, TJointHistogramMetric >::VirtualImageType
typename Superclass::VirtualImageType VirtualImageType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:120
itk::JointHistogramMutualInformationComputeJointPDFThreader< ThreadedImageRegionPartitioner< TJointHistogramMetric::VirtualImageDimension >, TJointHistogramMetric >::VirtualImageType
typename Superclass::VirtualImageType VirtualImageType
Definition: itkJointHistogramMutualInformationComputeJointPDFThreader.h:79