ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkDisplacementFieldJacobianDeterminantFilter.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 itkDisplacementFieldJacobianDeterminantFilter_h
19#define itkDisplacementFieldJacobianDeterminantFilter_h
20
23#include "itkVector.h"
24#include "vnl/vnl_matrix_fixed.h"
25#include "vnl/vnl_vector_fixed.h"
26
27namespace itk
28{
108template <typename TInputImage,
109 typename TRealType = float,
110 typename TOutputImage = Image<TRealType, TInputImage::ImageDimension>>
112 : public ImageToImageFilter<TInputImage, TOutputImage>
113{
114public:
115 ITK_DISALLOW_COPY_AND_MOVE(DisplacementFieldJacobianDeterminantFilter);
116
122
124 itkNewMacro(Self);
125
127 itkOverrideGetNameOfClassMacro(DisplacementFieldJacobianDeterminantFilter);
128
131 using OutputPixelType = typename TOutputImage::PixelType;
132 using InputPixelType = typename TInputImage::PixelType;
133
135 using InputImageType = TInputImage;
136 using OutputImageType = TOutputImage;
137 using InputImagePointer = typename InputImageType::Pointer;
138 using OutputImagePointer = typename OutputImageType::Pointer;
139
141 static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
142
144 static constexpr unsigned int VectorDimension = InputPixelType::Dimension;
145
147 using RealType = TRealType;
150
155
158
167 void
169
177 void
179 itkGetConstMacro(UseImageSpacing, bool);
180 itkBooleanMacro(UseImageSpacing);
182#if !defined(ITK_FUTURE_LEGACY_REMOVE)
188 void
189 SetUseImageSpacingOn()
190 {
191 this->SetUseImageSpacing(true);
192 }
193
198 void
199 SetUseImageSpacingOff()
200 {
201 this->SetUseImageSpacing(false);
202 }
203#endif
204
206
210 void
212 itkGetConstReferenceMacro(DerivativeWeights, WeightsType);
214protected:
217
221 void
223
236 void
237 DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override;
238
239
240 void
241 PrintSelf(std::ostream & os, Indent indent) const override;
242
243 using ImageBaseType = typename InputImageType::Superclass;
244
246 itkGetConstObjectMacro(RealValuedInputImage, ImageBaseType);
247
250 itkGetConstReferenceMacro(NeighborhoodRadius, RadiusType);
251 itkSetMacro(NeighborhoodRadius, RadiusType);
253 virtual TRealType
255
258
262
263private:
266 using InternalMatrixType = vnl_matrix_fixed<TRealType, ImageDimension, ImageDimension>;
267
268 bool m_UseImageSpacing{ true };
269
271
272 typename ImageBaseType::ConstPointer m_RealValuedInputImage{};
273
275
277};
278} // end namespace itk
279
280#ifndef ITK_MANUAL_INSTANTIATION
281# include "itkDisplacementFieldJacobianDeterminantFilter.hxx"
282#endif
283
284#endif
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
~DisplacementFieldJacobianDeterminantFilter() override=default
typename OutputImageType::RegionType OutputImageRegionType
vnl_matrix_fixed< TRealType, ImageDimension, ImageDimension > InternalMatrixType
void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) override
virtual TRealType EvaluateAtNeighborhood(const ConstNeighborhoodIteratorType &it) const
Image< RealVectorType, TInputImage::ImageDimension > RealVectorImageType
void PrintSelf(std::ostream &os, Indent indent) const override
ConstNeighborhoodIterator< RealVectorImageType > ConstNeighborhoodIteratorType
void SetDerivativeWeights(const WeightsType &)
Simulate a standard C array with copy semantics.
typename OutputImageType::RegionType OutputImageRegionType
Templated n-dimensional image class.
Definition itkImage.h:89
Control indentation during Print() invocation.
Definition itkIndent.h:51
Implements transparent reference counting.
A templated class holding a n-Dimensional vector.
Definition itkVector.h:63
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType