Go to the documentation of this file.
10 #ifndef vtk_m_worklet_ImageDifference_h
11 #define vtk_m_worklet_ImageDifference_h
40 template <
typename InputFieldPortalType>
43 const typename InputFieldPortalType::ValueType& secondary,
45 typename InputFieldPortalType::ValueType& diff,
48 using T =
typename InputFieldPortalType::ValueType;
61 diff = vtkm::Abs(primaryNeighborhood.
Get(i, j, k) - secondary);
67 if (diffThreshold < minPixelDiffThreshold)
69 minPixelDiffThreshold = diffThreshold;
76 diffThreshold = minPixelDiffThreshold;
93 template <
typename T, vtkm::IdComponent Size>
99 diff = vtkm::Abs(primary - secondary);
108 #endif // vtk_m_worklet_ImageDifference_h
Provides a neighborhood's placement with respect to the mesh's boundary.
Definition: BoundaryState.h:31
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
VTKM_EXEC vtkm::IdComponent3 MaxNeighborIndices(vtkm::IdComponent radius) const
Returns the minimum neighborhood indices that are within the bounds of the data.
Definition: BoundaryState.h:136
void(_2, _3, Boundary, _4, _5) ExecutionSignature
Definition: worklet/ImageDifference.h:31
A control signature tag for output fields.
Definition: WorkletMapField.h:60
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
A control signature tag for input connectivity.
Definition: WorkletNeighborhood.h:110
A control signature tag for output point fields.
Definition: WorkletNeighborhood.h:89
Definition: worklet/ImageDifference.h:27
VTKM_EXEC_CONT detail::FloatingPointReturnType< T >::Type Magnitude(const T &x)
Returns the magnitude of a vector.
Definition: VectorAnalysis.h:100
vtkm::FloatDefault Threshold
Definition: worklet/ImageDifference.h:81
VTKM_EXEC void operator()(const vtkm::Vec< T, Size > &primary, const vtkm::Vec< T, Size > &secondary, vtkm::Vec< T, Size > &diff, vtkm::FloatDefault &diffThreshold) const
Definition: worklet/ImageDifference.h:94
ImageDifferenceNeighborhood(const vtkm::IdComponent &radius, const vtkm::FloatDefault &threshold)
Definition: worklet/ImageDifference.h:34
_1 InputDomain
Definition: worklet/ImageDifference.h:32
VTKM_EXEC ValueType Get(vtkm::IdComponent i, vtkm::IdComponent j, vtkm::IdComponent k) const
Definition: FieldNeighborhood.h:48
Definition: worklet/ImageDifference.h:84
A control signature tag for input fields.
Definition: WorkletMapField.h:49
void(CellSetIn, FieldInNeighborhood, FieldIn, FieldOut, FieldOut) ControlSignature
Definition: worklet/ImageDifference.h:30
VTKM_EXEC void operator()(const vtkm::exec::FieldNeighborhood< InputFieldPortalType > &primaryNeighborhood, const typename InputFieldPortalType::ValueType &secondary, const vtkm::exec::BoundaryState &boundary, typename InputFieldPortalType::ValueType &diff, vtkm::FloatDefault &diffThreshold) const
Definition: worklet/ImageDifference.h:41
A control signature tag for input point fields.
Definition: WorkletNeighborhood.h:77
Definition: worklet/Threshold.h:33
The ExecutionSignature tag to query if the current iteration is inside the boundary.
Definition: WorkletNeighborhood.h:54
A short fixed-length array.
Definition: Types.h:767
vtkm::Float32 FloatDefault
The floating point type to use when no other precision is specified.
Definition: Types.h:198
void(FieldIn, FieldIn, FieldOut, FieldOut) ControlSignature
Definition: worklet/ImageDifference.h:87
ImageDifference()=default
VTKM_EXEC vtkm::IdComponent3 MinNeighborIndices(vtkm::IdComponent radius) const
Returns the minimum neighborhood indices that are within the bounds of the data.
Definition: BoundaryState.h:114
A control signature tag for neighborhood input values.
Definition: WorkletNeighborhood.h:129
Definition: WorkletPointNeighborhood.h:27
_1 InputDomain
Definition: worklet/ImageDifference.h:89
vtkm::IdComponent ShiftRadius
Definition: worklet/ImageDifference.h:80
void(_1, _2, _3, _4) ExecutionSignature
Definition: worklet/ImageDifference.h:88
Retrieves field values from a neighborhood.
Definition: FieldNeighborhood.h:36
Base class for worklets that do a simple mapping of field arrays.
Definition: WorkletMapField.h:38