ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkVideoStream.h>
A DataObject that holds a buffered portion of a video.
The function of VideoStream is to provide an Image-specific subclass of TemporalDataObject. It provides several convenient typedefs to get common attributes of the frames. Additionally, the VideoStream caches meta information (lagest/requested/buffered spatial regions, origin, spacing, and direction) about all frames in the video, even those not currently buffered. This is done primarily in order to allow the meta data to be set before the frame is buffered.
Definition at line 41 of file itkVideoStream.h.
Public Types | |
using | BufferType = typename Superclass::BufferType |
using | ConstPointer = SmartPointer< const Self > |
using | ConstWeakPointer = WeakPointer< const Self > |
using | DirectionMapType = typename std::map< SizeValueType, DirectionType > |
using | DirectionType = typename FrameType::DirectionType |
using | FrameConstPointer = typename FrameType::ConstPointer |
using | FramePointer = typename FrameType::Pointer |
using | FrameType = TFrameType |
using | IndexType = typename FrameType::IndexType |
using | PixelType = typename FrameType::PixelType |
using | Pointer = SmartPointer< Self > |
using | PointMapType = typename std::map< SizeValueType, PointType > |
using | PointType = typename FrameType::PointType |
using | Self = VideoStream |
using | SizeType = typename FrameType::SizeType |
using | SpacingMapType = typename std::map< SizeValueType, SpacingType > |
using | SpacingType = typename FrameType::SpacingType |
using | SpatialRegionMapType = typename std::map< SizeValueType, SpatialRegionType > |
using | SpatialRegionType = typename FrameType::RegionType |
using | Superclass = TemporalDataObject |
Public Types inherited from itk::TemporalDataObject | |
using | BufferType = RingBuffer< DataObject > |
using | ConstPointer = SmartPointer< const Self > |
using | ConstWeakPointer = WeakPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = TemporalDataObject |
using | Superclass = DataObject |
using | TemporalRegionType = TemporalRegion |
enum | TemporalUnitType { Frame, RealTime, FrameAndRealTime } |
Public Types inherited from itk::DataObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = std::string |
using | DataObjectPointerArraySizeType = std::vector< Pointer >::size_type |
using | Pointer = SmartPointer< Self > |
using | Self = DataObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static unsigned int | GetFrameDimension () |
static Pointer | New () |
Static Public Member Functions inherited from itk::TemporalDataObject | |
static Pointer | New () |
Static Public Member Functions inherited from itk::DataObject | |
static bool | GetGlobalReleaseDataFlag () |
static void | GlobalReleaseDataFlagOff () |
static void | GlobalReleaseDataFlagOn () |
static void | SetGlobalReleaseDataFlag (bool val) |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | FrameDimension = FrameType::ImageDimension |
SpatialRegionMapType | m_LargestPossibleSpatialRegionCache |
SpatialRegionMapType | m_RequestedSpatialRegionCache |
SpatialRegionMapType | m_BufferedSpatialRegionCache |
SpacingMapType | m_SpacingCache |
DirectionMapType | m_DirectionCache |
PointMapType | m_OriginCache |
void | Allocate () |
void | Graft (const DataObject *data) override |
VideoStream ()=default | |
~VideoStream () override=default | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
Additional Inherited Members | |
Protected Member Functions inherited from itk::TemporalDataObject | |
TemporalDataObject () | |
~TemporalDataObject () override | |
Protected Member Functions inherited from itk::DataObject | |
DataObject () | |
virtual void | PropagateResetPipeline () |
~DataObject () override | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
virtual void | SetTimeStamp (const TimeStamp &time) |
~Object () override | |
Protected Member Functions inherited from itk::LightObject | |
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 () |
Protected Attributes inherited from itk::TemporalDataObject | |
TemporalRegionType | m_BufferedTemporalRegion |
BufferType::Pointer | m_DataObjectBuffer |
TemporalRegionType | m_LargestPossibleTemporalRegion |
TemporalRegionType | m_RequestedTemporalRegion |
TemporalUnitType | m_TemporalUnit {Frame} |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::VideoStream< TFrameType >::BufferType = typename Superclass::BufferType |
Definition at line 56 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::ConstPointer = SmartPointer< const Self > |
Definition at line 50 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::ConstWeakPointer = WeakPointer< const Self > |
Definition at line 51 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::DirectionMapType = typename std::map<SizeValueType, DirectionType> |
Definition at line 69 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::DirectionType = typename FrameType::DirectionType |
Definition at line 64 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::FrameConstPointer = typename FrameType::ConstPointer |
Definition at line 55 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::FramePointer = typename FrameType::Pointer |
Definition at line 54 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::FrameType = TFrameType |
Definition at line 53 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::IndexType = typename FrameType::IndexType |
Definition at line 59 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::PixelType = typename FrameType::PixelType |
Definition at line 60 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::Pointer = SmartPointer< Self > |
Definition at line 49 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::PointMapType = typename std::map<SizeValueType, PointType> |
Definition at line 68 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::PointType = typename FrameType::PointType |
Definition at line 61 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::Self = VideoStream |
Standard class type aliases
Definition at line 47 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::SizeType = typename FrameType::SizeType |
Definition at line 63 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::SpacingMapType = typename std::map<SizeValueType, SpacingType> |
Definition at line 70 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::SpacingType = typename FrameType::SpacingType |
Definition at line 62 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::SpatialRegionMapType = typename std::map<SizeValueType, SpatialRegionType> |
Types used to store map between frame numbers and frame meta data
Definition at line 67 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::SpatialRegionType = typename FrameType::RegionType |
Definition at line 58 of file itkVideoStream.h.
using itk::VideoStream< TFrameType >::Superclass = TemporalDataObject |
Definition at line 48 of file itkVideoStream.h.
|
protecteddefault |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
|
overrideprotecteddefault |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
void itk::VideoStream< TFrameType >::Allocate | ( | ) |
Allocate memory for the buffered spatial region of each frame in the buffered temporal region. This assumes that all frames in the buffered temporal region have been initialized and that the buffered spatial region has been set for each of these frames. A typical setup would look like:
|
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::TemporalDataObject.
|
inline |
Definition at line 129 of file itkVideoStream.h.
|
inline |
Definition at line 156 of file itkVideoStream.h.
FramePointer itk::VideoStream< TFrameType >::GetFrame | ( | SizeValueType | frameNumber | ) |
Get the frame for the given frame number. Internally, we always leave the Head of the ring buffer in place and just use the frame number as an offset. This allows all references to frames to be processed by an explicit frame number rather than a potentially confusing offset.
FrameConstPointer itk::VideoStream< TFrameType >::GetFrame | ( | SizeValueType | frameNumber | ) | const |
Get the frame for the given frame number. Internally, we always leave the Head of the ring buffer in place and just use the frame number as an offset. This allows all references to frames to be processed by an explicit frame number rather than a potentially confusing offset.
|
inline |
Provide access to the internal frame buffer object
Definition at line 96 of file itkVideoStream.h.
|
inline |
Provide access to the internal frame buffer object
Definition at line 100 of file itkVideoStream.h.
const SpatialRegionType& itk::VideoStream< TFrameType >::GetFrameBufferedSpatialRegion | ( | SizeValueType | frameNumber | ) | const |
|
inlinestatic |
Definition at line 74 of file itkVideoStream.h.
const DirectionType& itk::VideoStream< TFrameType >::GetFrameDirection | ( | SizeValueType | frameNumber | ) | const |
const SpatialRegionType& itk::VideoStream< TFrameType >::GetFrameLargestPossibleSpatialRegion | ( | SizeValueType | frameNumber | ) | const |
const PointType& itk::VideoStream< TFrameType >::GetFrameOrigin | ( | SizeValueType | frameNumber | ) | const |
const SpatialRegionType& itk::VideoStream< TFrameType >::GetFrameRequestedSpatialRegion | ( | SizeValueType | frameNumber | ) | const |
const SpacingType& itk::VideoStream< TFrameType >::GetFrameSpacing | ( | SizeValueType | frameNumber | ) | const |
|
inline |
Provide access to the internal caches for the meta data
Definition at line 110 of file itkVideoStream.h.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::TemporalDataObject.
|
inline |
Definition at line 147 of file itkVideoStream.h.
|
inline |
Definition at line 120 of file itkVideoStream.h.
|
inline |
Definition at line 138 of file itkVideoStream.h.
|
overridevirtual |
Graft the data and information from one VideoStream to this one. This just copies the meta information using TemporalProcessObject's Graft then sets the internal RingBuffer pointer to point to the same buffer used by the other VideoStream.
Reimplemented from itk::TemporalDataObject.
void itk::VideoStream< TFrameType >::InitializeEmptyFrames | ( | ) |
Initialize any empty frames. This method makes sure that the frame buffer is large enough to hold the number of frames needed for the buffered temporal region. It goes through the necessary number of frames making sure that each one has been initialized. When allocating space for frames, this method should be called first, followed by setting the spatial regions on each frame, before Allocate is called.
|
static |
|
inlineoverrideprotectedvirtual |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
Reimplemented from itk::TemporalDataObject.
Definition at line 287 of file itkVideoStream.h.
void itk::VideoStream< TFrameType >::SetAllBufferedSpatialRegions | ( | SpatialRegionType | region | ) |
Set the BufferedRegion on all frames. This assumes that all frames in the buffered temporal region have been initialized (should be called after InitializeEmptyFrames).
void itk::VideoStream< TFrameType >::SetAllFramesDirection | ( | DirectionType | direction | ) |
Set the Direction of all frames. This assumes that all frames in the buffered temporal region have been initialized (should be called after InitializeEmptyFrames).
void itk::VideoStream< TFrameType >::SetAllFramesOrigin | ( | PointType | origin | ) |
Set the Origin of all frames. This assumes that all frames in the buffered temporal region have been initialized (should be called after InitializeEmptyFrames).
void itk::VideoStream< TFrameType >::SetAllFramesSpacing | ( | SpacingType | spacing | ) |
Set the Spacing of all frames. This assumes that all frames in the buffered temporal region have been initialized (should be called after InitializeEmptyFrames).
void itk::VideoStream< TFrameType >::SetAllLargestPossibleSpatialRegions | ( | SpatialRegionType | region | ) |
Set the LargestPossibleRegion on all frames. This assumes that all frames in the buffered temporal region have been initialized (should be called after InitializeEmptyFrames).
void itk::VideoStream< TFrameType >::SetAllRequestedSpatialRegions | ( | SpatialRegionType | region | ) |
Set the RequestedRegion on all frames. This assumes that all frames in the buffered temporal region have been initialized (should be called after InitializeEmptyFrames).
|
inline |
Definition at line 133 of file itkVideoStream.h.
|
inline |
Definition at line 160 of file itkVideoStream.h.
void itk::VideoStream< TFrameType >::SetFrame | ( | SizeValueType | frameNumber, |
FramePointer | frame | ||
) |
Set the contents of the frame at a given frame number
void itk::VideoStream< TFrameType >::SetFrameBuffer | ( | BufferType * | buffer | ) |
Set the internal pixel buffer
void itk::VideoStream< TFrameType >::SetFrameBufferedSpatialRegion | ( | SizeValueType | frameNumber, |
SpatialRegionType | region | ||
) |
Get/Set the BufferedRegion of a frame
void itk::VideoStream< TFrameType >::SetFrameDirection | ( | SizeValueType | frameNumber, |
DirectionType | direction | ||
) |
Get/Set the Direction of a frame
void itk::VideoStream< TFrameType >::SetFrameLargestPossibleSpatialRegion | ( | SizeValueType | frameNumber, |
SpatialRegionType | region | ||
) |
Get/Set the LargestPossibleRegion of a frame
void itk::VideoStream< TFrameType >::SetFrameOrigin | ( | SizeValueType | frameNumber, |
PointType | origin | ||
) |
Get/Set the Origin of a frame
void itk::VideoStream< TFrameType >::SetFrameRequestedSpatialRegion | ( | SizeValueType | frameNumber, |
SpatialRegionType | region | ||
) |
Get/Set the RequestedRegion of a frame
void itk::VideoStream< TFrameType >::SetFrameSpacing | ( | SizeValueType | frameNumber, |
SpacingType | spacing | ||
) |
Get/Set the Spacing of a frame
|
inline |
Provide access to the internal caches for the meta data
Definition at line 114 of file itkVideoStream.h.
void itk::VideoStream< TFrameType >::SetMinimumBufferSize | ( | SizeValueType | minimumNumberOfFrames | ) |
Safely expand the internal ring buffer.
|
inline |
Definition at line 151 of file itkVideoStream.h.
|
inline |
Definition at line 124 of file itkVideoStream.h.
|
inline |
Definition at line 142 of file itkVideoStream.h.
|
static |
Access the spacial dimensionality of the frames
Definition at line 73 of file itkVideoStream.h.
|
protected |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
Definition at line 297 of file itkVideoStream.h.
|
protected |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
Definition at line 302 of file itkVideoStream.h.
|
protected |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
Definition at line 295 of file itkVideoStream.h.
|
protected |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
Definition at line 303 of file itkVideoStream.h.
|
protected |
These maps are used to cache a mapping between frame number and spatial region. This is done because frames will often not be in actual existence at the time when the region gets set.
Definition at line 296 of file itkVideoStream.h.
|
protected |
These maps cache a mapping between frame number and the meta data for origin, spacing, and direction
Definition at line 301 of file itkVideoStream.h.