18 #ifndef itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
19 #define itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
56 template<
typename TDomainPartitioner,
typename TImageToImageMetric,
typename TNeighborhoodCorrelationMetric >
92 using ImageRegionType =
typename NeighborhoodCorrelationMetricType::ImageRegionType;
95 using JacobianType =
typename NeighborhoodCorrelationMetricType::JacobianType;
97 using FixedImageType =
typename NeighborhoodCorrelationMetricType::FixedImageType;
98 using MovingImageType =
typename NeighborhoodCorrelationMetricType::MovingImageType;
99 using RadiusType =
typename NeighborhoodCorrelationMetricType::RadiusType;
149 m_ANTSAssociate(nullptr)
192 bool ProcessVirtualPoint_impl(
194 const VirtualIndexType & virtualIndex,
195 const VirtualPointType & virtualPoint,
205 return Superclass::ProcessVirtualPoint(virtualIndex, virtualPoint, threadId);
223 const ThreadIdType itkNotUsed(threadId) )
const override
225 itkExceptionMacro(
"ProcessPoint should never be reached in ANTS CC metric threader class.");
235 void ThreadedExecution_impl(
237 const DomainType& domain,
242 void ThreadedExecution_impl(
244 const DomainType& domain,
250 void InitializeScanning(
const ImageRegionType &scanRegion,
251 ScanIteratorType &scanIt, ScanMemType &scanMem,
252 ScanParametersType &scanParameters )
const;
256 void UpdateQueues(
const ScanIteratorType &scanIt,
257 ScanMemType &scanMem,
const ScanParametersType &scanParameters,
260 void UpdateQueuesAtBeginningOfLine(
261 const ScanIteratorType &scanIt, ScanMemType &scanMem,
262 const ScanParametersType &scanParameters,
268 void UpdateQueuesToNextScanWindow(
269 const ScanIteratorType &scanIt, ScanMemType &scanMem,
270 const ScanParametersType &scanParameters,
275 bool ComputeInformationFromQueues(
276 const ScanIteratorType &scanIt, ScanMemType &scanMem,
277 const ScanParametersType &scanParameters,
280 void ComputeMovingTransformDerivative(
281 const ScanIteratorType &scanIt, ScanMemType &scanMem,
282 const ScanParametersType &scanParameters, DerivativeType &deriv,
283 MeasureType &local_cc,
const ThreadIdType threadId)
const;
294 #ifndef ITK_MANUAL_INSTANTIATION
295 #include "itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx"
SizeValueType windowLength
Threading implementation for ANTS CC metric ANTSNeighborhoodCorrelationImageToImageMetricv4 ...
typename NeighborhoodCorrelationMetricType::RadiusType RadiusType
typename Superclass::FixedImagePixelType FixedImagePixelType
MovingImagePointType mappedMovingPoint
void ThreadedExecution(const DomainType &domain, const ThreadIdType threadId) override
typename Superclass::VirtualPointType VirtualPointType
typename Superclass::FixedImageGradientType FixedImageGradientType
typename Superclass::FixedImagePointType FixedImagePointType
bool ProcessPoint(const VirtualIndexType &, const VirtualPointType &, const FixedImagePointType &, const FixedImagePixelType &, const FixedImageGradientType &, const MovingImagePointType &, const MovingImagePixelType &, const MovingImageGradientType &, MeasureType &, DerivativeType &, const ThreadIdType) const override
QueueRealType sMovingMoving
FixedImagePointType mappedFixedPoint
ImageRegionType scanRegion
unsigned long SizeValueType
FixedImageGradientType fixedImageGradient
VirtualImageType::ConstPointer virtualImage
Class for partitioning of an ImageRegion.
typename Superclass::MovingImagePointType MovingImagePointType
typename Superclass::MovingImageGradientType MovingImageGradientType
SizeValueType numberOfFillZero
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename NeighborhoodCorrelationMetricType::NumberOfParametersType NumberOfParametersType
typename Superclass::VirtualIndexType VirtualIndexType
typename NeighborhoodCorrelationMetricType::MovingImageType MovingImageType
bool ProcessVirtualPoint_impl(IdentityHelper< T >, const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId)
TNeighborhoodCorrelationMetric NeighborhoodCorrelationMetricType
VirtualPointType virtualPoint
typename NeighborhoodCorrelationMetricType::ImageDimensionType ImageDimensionType
QueueRealType sFixedFixed
QueueRealType sFixedMoving
typename NeighborhoodCorrelationMetricType::ImageRegionType ImageRegionType
signed long IndexValueType
typename Superclass::DerivativeValueType DerivativeValueType
MovingImageGradientType movingImageGradient
typename Superclass::MovingImagePixelType MovingImagePixelType
unsigned int ThreadIdType
typename NeighborhoodCorrelationMetricType::JacobianType JacobianType
typename NeighborhoodCorrelationMetricType::FixedImageType FixedImageType
FixedImageType::ConstPointer fixedImage
typename NeighborhoodCorrelationMetricType::InternalComputationValueType InternalComputationValueType
ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader()
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
std::deque< QueueRealType > SumQueueType
typename Superclass::MeasureType MeasureType
typename Superclass::AssociateType AssociateType
IndexValueType scanRegionBeginIndexDim0
typename Superclass::VirtualImageType VirtualImageType
typename Superclass::DerivativeType DerivativeType
MovingImageType::ConstPointer movingImage
SumQueueType QsumFixedMoving
bool ProcessVirtualPoint(const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId) override
InternalComputationValueType QueueRealType
TNeighborhoodCorrelationMetric * m_ANTSAssociate
typename Superclass::DomainType DomainType