template<typename TTransform, typename TOperatorValueType = float, typename TOutputValueType = float>
class itk::TransformToStrainFilter< TTransform, TOperatorValueType, TOutputValueType >
Generate a strain field image from a transform.
- Template Parameters
-
TTransform | The first template parameter is the input transform type. |
TOperatorValueType | The second template parameter defines the value type used in the derivative operator (defaults to float). |
TOutputValueType | The third template parameter defines the value type used for output image (defaults to float). The output image is defined as a symmetric second rank tensor image whose value type is specified as this third template parameter. |
Three different types of strains can be calculated, infinitesimal (default), aka engineering strain, which is appropriate for small strains, Green-Lagrangian, which uses a material reference system, and Eulerian-Almansi, which uses a spatial reference system. This is set with SetStrainForm().
- See Also
- StrainImageFilter
Definition at line 54 of file itkTransformToStrainFilter.h.
|
using | ConstPointer = SmartPointer< const Self > |
|
using | OutputImageType = Image< OutputPixelType, ImageDimension > |
|
using | OutputPixelType = SymmetricSecondRankTensor< TOutputValueType, ImageDimension > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = TransformToStrainFilter |
|
enum | StrainFormType {
INFINITESIMAL = 0,
GREENLAGRANGIAN = 1,
EULERIANALMANSI = 2
} |
|
using | Superclass = GenerateImageSource< OutputImageType > |
|
using | TransformInputType = DataObjectDecorator< TransformType > |
|
using | TransformType = TTransform |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DirectionType = typename OutputImageType::DirectionType |
|
using | IndexType = typename OutputImageType::IndexType |
|
using | OutputImagePointer = typename OutputImageType::Pointer |
|
using | OutputImageType = Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension > |
|
using | PixelType = typename OutputImageType::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | PointType = typename OutputImageType::PointType |
|
using | ReferenceImageBaseType = ImageBase< Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension >::ImageDimension > |
|
using | RegionType = typename OutputImageType::RegionType |
|
using | Self = GenerateImageSource |
|
using | SizeType = typename Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension >::SizeType |
|
using | SizeValueType = typename Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension >::SizeValueType |
|
using | SpacingType = typename OutputImageType::SpacingType |
|
using | Superclass = ImageSource< Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension > > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
|
using | OutputImagePixelType = typename OutputImageType::PixelType |
|
using | OutputImagePointer = typename OutputImageType::Pointer |
|
using | OutputImageRegionType = typename OutputImageType::RegionType |
|
using | OutputImageType = Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ImageSource |
|
using | Superclass = ProcessObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
|
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
|
using | MultiThreaderType = MultiThreaderBase |
|
using | NameArray = std::vector< DataObjectIdentifierType > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ProcessObject |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
void | BeforeThreadedGenerateData () override |
|
void | DynamicThreadedGenerateData (const OutputRegionType &outputRegion) override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| TransformToStrainFilter () |
|
| GenerateImageSource () |
|
void | GenerateOutputInformation () override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~GenerateImageSource () override=default |
|
virtual void | AfterThreadedGenerateData () |
|
virtual void | AllocateOutputs () |
|
void | ClassicMultiThread (ThreadFunctionType callbackFunction) |
|
void | GenerateData () override |
|
virtual const
ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
| ImageSource () |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
| ~ImageSource () override=default |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
|
virtual bool | GetDynamicMultiThreading () const |
|
virtual void | SetDynamicMultiThreading (bool _arg) |
|
virtual void | DynamicMultiThreadingOn () |
|
virtual void | DynamicMultiThreadingOff () |
|
virtual void | AddInput (DataObject *input) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | AddOutput (DataObject *output) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | CacheInputReleaseDataFlags () |
|
virtual void | GenerateInputRequestedRegion () |
|
virtual void | GenerateOutputRequestedRegion (DataObject *output) |
|
DataObject * | GetInput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
|
bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
|
bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
|
bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
|
DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
|
DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
|
DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
|
virtual void | PopBackInput () |
|
virtual void | PopFrontInput () |
|
| ProcessObject () |
|
virtual void | PropagateResetPipeline () |
|
virtual void | PushBackInput (const DataObject *input) |
|
virtual void | PushFrontInput (const DataObject *input) |
|
virtual void | ReleaseInputs () |
|
virtual void | RemoveInput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveInput (DataObjectPointerArraySizeType) |
|
virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
|
bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
|
virtual void | RestoreInputReleaseDataFlags () |
|
virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
|
virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
|
virtual void | SetPrimaryInput (DataObject *input) |
|
virtual void | SetPrimaryOutput (DataObject *output) |
|
void | SetRequiredInputNames (const NameArray &) |
|
virtual void | VerifyInputInformation () ITKv5_CONST |
|
virtual void | VerifyPreconditions () ITKv5_CONST |
|
| ~ProcessObject () override |
|
DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryInput () |
|
const DataObject * | GetPrimaryInput () const |
|
virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryInputName () const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName () const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
| ~Object () override |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|
template<typename TTransform , typename TOperatorValueType = float, typename TOutputValueType = float>
Three different types of strains can be calculated, infinitesimal (default), aka engineering strain, which is appropriate for small strains, Green-Lagrangian, which uses a material reference system, and Eulerian-Almansi, which uses a spatial reference system. This is set with SetStrainForm().
Enumerator |
---|
INFINITESIMAL |
|
GREENLAGRANGIAN |
|
EULERIANALMANSI |
|
Definition at line 92 of file itkTransformToStrainFilter.h.
template<typename TTransform , typename TOperatorValueType = float, typename TOutputValueType = float>
virtual::itk::LightObject::Pointer itk::TransformToStrainFilter< TTransform, TOperatorValueType, TOutputValueType >::CreateAnother |
( |
| ) |
const |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
template<typename TTransform , typename TOperatorValueType = float, typename TOutputValueType = float>
If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData() or DynamicThreadedGenerateData(). This superclass will automatically split the output image into a number of pieces, spawn multiple threads, and call (Dynamic)ThreadedGenerateData() in each thread. Prior to spawning threads, the BeforeThreadedGenerateData() method is called. After all the threads have completed, the AfterThreadedGenerateData() method is called. If an image processing filter cannot support threading, that filter should provide an implementation of the GenerateData() method instead of providing an implementation of (Dynamic)ThreadedGenerateData(). If a filter provides a GenerateData() method as its implementation, then the filter is responsible for allocating the output data. If a filter provides a (Dynamic)ThreadedGenerateData() method as its implementation, then the output memory will allocated automatically by this superclass. The (Dynamic)ThreadedGenerateData() method should only produce the output specified by "outputThreadRegion" parameter. (Dynamic)ThreadedGenerateData() cannot write to any other portion of the output image (as this is responsibility of a different thread).
DynamicThreadedGenerateData() is the newer variant without threadId, and is the preferred signature, which is called by default. This variant can split the requested region into different number of pieces depending on current multi-processing load, which allows better load balancing. The non-dynamic (also known as classic) ThreadedGenerateData() signature has threadId, and number of pieces to be split into is known in advance. It is activated by calling this->DynamicMultiThreadingOff(); in derived class constructor. It should be used when the multi-threaded algorithm needs to pre-allocate some data structure with size dependent on the number of pieces (also known as chunks, work units, and sometimes also incorrectly as threads). Only PlatformMultiThreader guarantees that each piece will be processed in its own specific thread. Pool and TBB multi-threaders maintain a pool of threads (normally equal to number of processing cores) which they use to process the pieces. This normally results in a single thread being reused to process multiple work units.
- See Also
- GenerateData(), SplitRequestedRegion()
Reimplemented from itk::ImageSource< Image< SymmetricSecondRankTensor< TOutputValueType, TTransform::InputSpaceDimension >, TTransform::InputSpaceDimension > >.