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;
134 using ScanParametersType =
struct
150 : m_ANTSAssociate(nullptr)
197 const VirtualIndexType & virtualIndex,
198 const VirtualPointType & virtualPoint,
202 template <
typename T>
209 return Superclass::ProcessVirtualPoint(virtualIndex, virtualPoint, threadId);
229 itkExceptionMacro(
"ProcessPoint should never be reached in ANTS CC metric threader class.");
240 ThreadedExecution_impl(
242 const DomainType & virtualImageSubRegion,
246 template <
typename T>
254 InitializeScanning(
const ImageRegionType & scanRegion,
255 ScanIteratorType & scanIt,
256 ScanMemType & scanMem,
257 ScanParametersType & scanParameters)
const;
262 UpdateQueues(
const ScanIteratorType & scanIt,
263 ScanMemType & scanMem,
264 const ScanParametersType & scanParameters,
268 UpdateQueuesAtBeginningOfLine(
const ScanIteratorType & scanIt,
269 ScanMemType & scanMem,
270 const ScanParametersType & scanParameters,
277 UpdateQueuesToNextScanWindow(
const ScanIteratorType & scanIt,
278 ScanMemType & scanMem,
279 const ScanParametersType & scanParameters,
285 ComputeInformationFromQueues(
const ScanIteratorType & scanIt,
286 ScanMemType & scanMem,
287 const ScanParametersType & scanParameters,
291 ComputeMovingTransformDerivative(
const ScanIteratorType & scanIt,
292 ScanMemType & scanMem,
293 const ScanParametersType & scanParameters,
294 DerivativeType & deriv,
295 MeasureType & localCC,
307 #ifndef ITK_MANUAL_INSTANTIATION
308 # include "itkANTSNeighborhoodCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx"