18 #ifndef itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
19 #define itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
56 template<
typename TDomainPartitioner,
typename TImageToImageMetric,
typename TNeighborhoodCorrelationMetric >
72 typedef typename Superclass::DomainType
DomainType;
90 typedef typename NeighborhoodCorrelationMetricType::ImageRegionType
ImageRegionType;
93 typedef typename NeighborhoodCorrelationMetricType::JacobianType
JacobianType;
95 typedef typename NeighborhoodCorrelationMetricType::FixedImageType
FixedImageType;
96 typedef typename NeighborhoodCorrelationMetricType::MovingImageType
MovingImageType;
97 typedef typename NeighborhoodCorrelationMetricType::RadiusType
RadiusType;
147 m_ANTSAssociate(ITK_NULLPTR)
190 bool ProcessVirtualPoint_impl(
192 const VirtualIndexType & virtualIndex,
193 const VirtualPointType & virtualPoint,
203 return Superclass::ProcessVirtualPoint(virtualIndex, virtualPoint, threadId);
221 const ThreadIdType itkNotUsed(threadId) ) const ITK_OVERRIDE
223 itkExceptionMacro(
"ProcessPoint should never be reached in ANTS CC metric threader class.");
233 void ThreadedExecution_impl(
235 const DomainType& domain,
240 void ThreadedExecution_impl(
242 const DomainType& domain,
248 void InitializeScanning(
const ImageRegionType &scanRegion,
249 ScanIteratorType &scanIt, ScanMemType &scanMem,
250 ScanParametersType &scanParameters )
const;
254 void UpdateQueues(
const ScanIteratorType &scanIt,
255 ScanMemType &scanMem,
const ScanParametersType &scanParameters,
258 void UpdateQueuesAtBeginningOfLine(
259 const ScanIteratorType &scanIt, ScanMemType &scanMem,
260 const ScanParametersType &scanParameters,
266 void UpdateQueuesToNextScanWindow(
267 const ScanIteratorType &scanIt, ScanMemType &scanMem,
268 const ScanParametersType &scanParameters,
273 bool ComputeInformationFromQueues(
274 const ScanIteratorType &scanIt, ScanMemType &scanMem,
275 const ScanParametersType &scanParameters,
278 void ComputeMovingTransformDerivative(
279 const ScanIteratorType &scanIt, ScanMemType &scanMem,
280 const ScanParametersType &scanParameters, DerivativeType &deriv,
281 MeasureType &local_cc,
const ThreadIdType threadId)
const;
294 #ifndef ITK_MANUAL_INSTANTIATION
295 #include "itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx"
SmartPointer< Self > Pointer
SizeValueType windowLength
Superclass::MovingImagePointType MovingImagePointType
Threading implementation for ANTS CC metric ANTSNeighborhoodCorrelationImageToImageMetricv4 ...
MovingImagePointType mappedMovingPoint
NeighborhoodCorrelationMetricType::RadiusType RadiusType
ConstNeighborhoodIterator< VirtualImageType > ScanIteratorType
Superclass::VirtualIndexType VirtualIndexType
NeighborhoodCorrelationMetricType::MovingImageType MovingImageType
Superclass::FixedImagePixelType FixedImagePixelType
Superclass::DomainType DomainType
QueueRealType sMovingMoving
FixedImagePointType mappedFixedPoint
ImageRegionType scanRegion
FixedImageGradientType fixedImageGradient
signed long IndexValueType
Superclass::MovingImagePixelType MovingImagePixelType
VirtualImageType::ConstPointer virtualImage
Class for partitioning of an ImageRegion.
Superclass::DerivativeValueType DerivativeValueType
ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader Self
SizeValueType numberOfFillZero
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
unsigned long SizeValueType
Superclass::FixedImagePointType FixedImagePointType
bool ProcessVirtualPoint_impl(IdentityHelper< T >, const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId)
VirtualPointType virtualPoint
std::deque< QueueRealType > SumQueueType
TNeighborhoodCorrelationMetric NeighborhoodCorrelationMetricType
Superclass::AssociateType AssociateType
QueueRealType sFixedFixed
QueueRealType sFixedMoving
NeighborhoodCorrelationMetricType::FixedImageType FixedImageType
MovingImageGradientType movingImageGradient
NeighborhoodCorrelationMetricType::ImageRegionType ImageRegionType
Superclass::VirtualImageType VirtualImageType
unsigned int ThreadIdType
Superclass::FixedImageGradientType FixedImageGradientType
SmartPointer< const Self > ConstPointer
Superclass::VirtualPointType VirtualPointType
Superclass::MovingImageGradientType MovingImageGradientType
FixedImageType::ConstPointer fixedImage
Superclass::MeasureType MeasureType
NeighborhoodCorrelationMetricType::NumberOfParametersType NumberOfParametersType
ANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader()
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
IndexValueType scanRegionBeginIndexDim0
NeighborhoodCorrelationMetricType::JacobianType JacobianType
MovingImageType::ConstPointer movingImage
NeighborhoodCorrelationMetricType::ImageDimensionType ImageDimensionType
SumQueueType QsumFixedMoving
InternalComputationValueType QueueRealType
TNeighborhoodCorrelationMetric * m_ANTSAssociate
ImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric > Superclass
virtual void ThreadedExecution(const DomainType &domain, const ThreadIdType threadId) override
virtual bool ProcessVirtualPoint(const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId) override
virtual bool ProcessPoint(const VirtualIndexType &, const VirtualPointType &, const FixedImagePointType &, const FixedImagePixelType &, const FixedImageGradientType &, const MovingImagePointType &, const MovingImagePixelType &, const MovingImageGradientType &, MeasureType &, DerivativeType &, const ThreadIdType) const override
Superclass::DerivativeType DerivativeType
NeighborhoodCorrelationMetricType::InternalComputationValueType InternalComputationValueType