ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::VideoStream< TFrameType > Class Template Reference

#include <itkVideoStream.h>

+ Inheritance diagram for itk::VideoStream< TFrameType >:
+ Collaboration diagram for itk::VideoStream< TFrameType >:

List of all members.

Public Types

typedef Superclass::BufferType BufferType
typedef SmartPointer< const SelfConstPointer
typedef WeakPointer< const SelfConstWeakPointer
typedef std::map
< SizeValueType, DirectionType
DirectionMapType
typedef FrameType::DirectionType DirectionType
typedef FrameType::ConstPointer FrameConstPointer
typedef FrameType::Pointer FramePointer
typedef TFrameType FrameType
typedef FrameType::IndexType IndexType
typedef FrameType::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef std::map
< SizeValueType, PointType
PointMapType
typedef FrameType::PointType PointType
typedef VideoStream Self
typedef FrameType::SizeType SizeType
typedef std::map
< SizeValueType, SpacingType
SpacingMapType
typedef FrameType::SpacingType SpacingType
typedef std::map
< SizeValueType,
SpatialRegionType
SpatialRegionMapType
typedef FrameType::RegionType SpatialRegionType
typedef TemporalDataObject Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
const SpatialRegionMapTypeGetBufferedSpatialRegionCache () const
const DirectionMapTypeGetDirectionCache () const
const SpatialRegionTypeGetFrameBufferedSpatialRegion (SizeValueType frameNumber) const
const DirectionTypeGetFrameDirection (SizeValueType frameNumber) const
const SpatialRegionTypeGetFrameLargestPossibleSpatialRegion (SizeValueType frameNumber) const
const PointTypeGetFrameOrigin (SizeValueType frameNumber) const
const SpatialRegionTypeGetFrameRequestedSpatialRegion (SizeValueType frameNumber) const
const SpacingTypeGetFrameSpacing (SizeValueType frameNumber) const
virtual const char * GetNameOfClass () const
const PointMapTypeGetOriginCache () const
const SpatialRegionMapTypeGetRequestedSpatialRegionCache () const
const SpacingMapTypeGetSpacingCache () const
virtual void Graft (const DataObject *data)
void InitializeEmptyFrames ()
void SetAllBufferedSpatialRegions (SpatialRegionType region)
void SetAllFramesDirection (DirectionType direction)
void SetAllFramesOrigin (PointType origin)
void SetAllFramesSpacing (SpacingType spacing)
void SetAllLargestPossibleSpatialRegions (SpatialRegionType region)
void SetAllRequestedSpatialRegions (SpatialRegionType region)
void SetBufferedSpatialRegionCache (SpatialRegionMapType map)
void SetDirectionCache (DirectionMapType map)
void SetFrame (SizeValueType frameNumber, FramePointer frame)
void SetFrameBuffer (BufferType *buffer)
void SetFrameBufferedSpatialRegion (SizeValueType frameNumber, SpatialRegionType region)
void SetFrameDirection (SizeValueType frameNumber, DirectionType direction)
void SetFrameLargestPossibleSpatialRegion (SizeValueType frameNumber, SpatialRegionType region)
void SetFrameOrigin (SizeValueType frameNumber, PointType origin)
void SetFrameRequestedSpatialRegion (SizeValueType frameNumber, SpatialRegionType region)
void SetFrameSpacing (SizeValueType frameNumber, SpacingType spacing)
void SetMinimumBufferSize (SizeValueType minimumNumberOfFrames)
void SetOriginCache (PointMapType map)
void SetRequestedSpatialRegionCache (SpatialRegionMapType map)
void SetSpacingCache (SpacingMapType map)
BufferTypeGetFrameBuffer ()
const BufferTypeGetFrameBuffer () const
const SpatialRegionMapTypeGetLargestPossibleSpatialRegionCache () const
void SetLargestPossibleSpatialRegionCache (SpatialRegionMapType map)
FramePointer GetFrame (SizeValueType frameNumber)
FrameConstPointer GetFrame (SizeValueType frameNumber) const
void Allocate ()

Static Public Member Functions

static Pointer New ()

Protected Member Functions

virtual void PrintSelf (std::ostream &os, Indent indent) const
 VideoStream ()
virtual ~VideoStream ()

Protected Attributes

SpatialRegionMapType m_BufferedSpatialRegionCache
DirectionMapType m_DirectionCache
SpatialRegionMapType m_LargestPossibleSpatialRegionCache
PointMapType m_OriginCache
SpatialRegionMapType m_RequestedSpatialRegionCache
SpacingMapType m_SpacingCache

Private Member Functions

void operator= (const Self &)
 VideoStream (const Self &)
static const unsigned int FrameDimension = FrameType::ImageDimension
static unsigned int GetFrameDimension ()

Detailed Description

template<class TFrameType>
class itk::VideoStream< TFrameType >

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.


Member Typedef Documentation

template<class TFrameType >
typedef Superclass::BufferType itk::VideoStream< TFrameType >::BufferType

Reimplemented from itk::TemporalDataObject.

Definition at line 55 of file itkVideoStream.h.

template<class TFrameType >
typedef SmartPointer< const Self > itk::VideoStream< TFrameType >::ConstPointer

Reimplemented from itk::TemporalDataObject.

Definition at line 49 of file itkVideoStream.h.

template<class TFrameType >
typedef WeakPointer< const Self > itk::VideoStream< TFrameType >::ConstWeakPointer

Reimplemented from itk::TemporalDataObject.

Definition at line 50 of file itkVideoStream.h.

template<class TFrameType >
typedef std::map<SizeValueType, DirectionType> itk::VideoStream< TFrameType >::DirectionMapType

Definition at line 68 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::DirectionType itk::VideoStream< TFrameType >::DirectionType

Definition at line 63 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::ConstPointer itk::VideoStream< TFrameType >::FrameConstPointer

Definition at line 54 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::Pointer itk::VideoStream< TFrameType >::FramePointer

Definition at line 53 of file itkVideoStream.h.

template<class TFrameType >
typedef TFrameType itk::VideoStream< TFrameType >::FrameType

Definition at line 52 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::IndexType itk::VideoStream< TFrameType >::IndexType

Definition at line 58 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::PixelType itk::VideoStream< TFrameType >::PixelType

Definition at line 59 of file itkVideoStream.h.

template<class TFrameType >
typedef SmartPointer< Self > itk::VideoStream< TFrameType >::Pointer

Reimplemented from itk::TemporalDataObject.

Definition at line 48 of file itkVideoStream.h.

template<class TFrameType >
typedef std::map<SizeValueType, PointType> itk::VideoStream< TFrameType >::PointMapType

Definition at line 67 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::PointType itk::VideoStream< TFrameType >::PointType

Definition at line 60 of file itkVideoStream.h.

template<class TFrameType >
typedef VideoStream itk::VideoStream< TFrameType >::Self

Standard class typedefs

Reimplemented from itk::TemporalDataObject.

Definition at line 46 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::SizeType itk::VideoStream< TFrameType >::SizeType

Definition at line 62 of file itkVideoStream.h.

template<class TFrameType >
typedef std::map<SizeValueType, SpacingType> itk::VideoStream< TFrameType >::SpacingMapType

Definition at line 69 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::SpacingType itk::VideoStream< TFrameType >::SpacingType

Definition at line 61 of file itkVideoStream.h.

template<class TFrameType >
typedef std::map<SizeValueType, SpatialRegionType> itk::VideoStream< TFrameType >::SpatialRegionMapType

Types used to store map between frame numbers and frame meta data

Definition at line 66 of file itkVideoStream.h.

template<class TFrameType >
typedef FrameType::RegionType itk::VideoStream< TFrameType >::SpatialRegionType

Definition at line 57 of file itkVideoStream.h.

template<class TFrameType >
typedef TemporalDataObject itk::VideoStream< TFrameType >::Superclass

Reimplemented from itk::TemporalDataObject.

Definition at line 47 of file itkVideoStream.h.


Constructor & Destructor Documentation

template<class TFrameType >
itk::VideoStream< TFrameType >::VideoStream ( ) [inline, protected]

Definition at line 285 of file itkVideoStream.h.

template<class TFrameType >
virtual itk::VideoStream< TFrameType >::~VideoStream ( ) [inline, protected, virtual]

Definition at line 287 of file itkVideoStream.h.

template<class TFrameType >
itk::VideoStream< TFrameType >::VideoStream ( const Self ) [private]

Member Function Documentation

template<class TFrameType >
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:

    // Set the temporal regions
    TemporalRegionType temporalRegion;
    temporalRegion.SetFrameStart( 0 );
    temporalRegion.SetFrameDuration( 3 );
    video->SetLargestPossibleTemporalRegion( temporalRegion );
    video->SetRequestedTemporalRegion( temporalRegion );
    video->SetBufferedTemporalRegion( temporalRegion );

    // Initialize all frames in the buffered temporal region
    video->InitializeEmptyFrames();

    // Set the buffered spatial region for each frame
    SpatialRegionType bufferedSpatialRegion;
    SpatialRegionType::SizeType size;
    SpatialRegionType::IndexType start;
    size[0] = 50;
    size[1] = 40;
    start.Fill( 0 );
    bufferedSpatialRegion.SetSize( size );
    bufferedSpatialRegion.SetIndex( start );
    video->SetAllBufferedSpatialRegions( bufferedSpatialRegion );

    // Allocate memory for the frames
    video->Allocate();
template<class TFrameType >
virtual::itk::LightObject::Pointer itk::VideoStream< TFrameType >::CreateAnother ( void  ) 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::TemporalDataObject.

template<class TFrameType >
const SpatialRegionMapType& itk::VideoStream< TFrameType >::GetBufferedSpatialRegionCache ( ) const [inline]

Definition at line 129 of file itkVideoStream.h.

template<class TFrameType >
const DirectionMapType& itk::VideoStream< TFrameType >::GetDirectionCache ( ) const [inline]

Definition at line 156 of file itkVideoStream.h.

template<class TFrameType >
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.

template<class TFrameType >
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.

template<class TFrameType >
BufferType* itk::VideoStream< TFrameType >::GetFrameBuffer ( ) [inline]

Provide access to the internal frame buffer object

Definition at line 96 of file itkVideoStream.h.

template<class TFrameType >
const BufferType* itk::VideoStream< TFrameType >::GetFrameBuffer ( ) const [inline]

Provide access to the internal frame buffer object

Definition at line 100 of file itkVideoStream.h.

template<class TFrameType >
const SpatialRegionType& itk::VideoStream< TFrameType >::GetFrameBufferedSpatialRegion ( SizeValueType  frameNumber) const
template<class TFrameType >
static unsigned int itk::VideoStream< TFrameType >::GetFrameDimension ( ) [inline, static]

Access the spacial dimensionality of the frames

Definition at line 73 of file itkVideoStream.h.

template<class TFrameType >
const DirectionType& itk::VideoStream< TFrameType >::GetFrameDirection ( SizeValueType  frameNumber) const
template<class TFrameType >
const SpatialRegionType& itk::VideoStream< TFrameType >::GetFrameLargestPossibleSpatialRegion ( SizeValueType  frameNumber) const
template<class TFrameType >
const PointType& itk::VideoStream< TFrameType >::GetFrameOrigin ( SizeValueType  frameNumber) const
template<class TFrameType >
const SpatialRegionType& itk::VideoStream< TFrameType >::GetFrameRequestedSpatialRegion ( SizeValueType  frameNumber) const
template<class TFrameType >
const SpacingType& itk::VideoStream< TFrameType >::GetFrameSpacing ( SizeValueType  frameNumber) const
template<class TFrameType >
const SpatialRegionMapType& itk::VideoStream< TFrameType >::GetLargestPossibleSpatialRegionCache ( ) const [inline]

Provide access to the internal caches for the meta data

Definition at line 110 of file itkVideoStream.h.

template<class TFrameType >
virtual const char* itk::VideoStream< TFrameType >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::TemporalDataObject.

template<class TFrameType >
const PointMapType& itk::VideoStream< TFrameType >::GetOriginCache ( ) const [inline]

Definition at line 147 of file itkVideoStream.h.

template<class TFrameType >
const SpatialRegionMapType& itk::VideoStream< TFrameType >::GetRequestedSpatialRegionCache ( ) const [inline]

Definition at line 120 of file itkVideoStream.h.

template<class TFrameType >
const SpacingMapType& itk::VideoStream< TFrameType >::GetSpacingCache ( ) const [inline]

Definition at line 138 of file itkVideoStream.h.

template<class TFrameType >
virtual void itk::VideoStream< TFrameType >::Graft ( const DataObject data) [virtual]

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.

template<class TFrameType >
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.

template<class TFrameType >
static Pointer itk::VideoStream< TFrameType >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::TemporalDataObject.

template<class TFrameType >
void itk::VideoStream< TFrameType >::operator= ( const Self ) [private]

Reimplemented from itk::TemporalDataObject.

template<class TFrameType >
virtual void itk::VideoStream< TFrameType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [inline, protected, virtual]

Method for grafting the content of one data object into another one. This method is intended to be overloaded by derived classes. Each one of them should use dynamic_casting in order to verify that the grafted object is actually of the same type as the class on which the Graft() method was invoked.

Reimplemented from itk::TemporalDataObject.

Definition at line 289 of file itkVideoStream.h.

template<class TFrameType >
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).

template<class TFrameType >
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).

template<class TFrameType >
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).

template<class TFrameType >
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).

template<class TFrameType >
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).

template<class TFrameType >
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).

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetBufferedSpatialRegionCache ( SpatialRegionMapType  map) [inline]

Definition at line 133 of file itkVideoStream.h.

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetDirectionCache ( DirectionMapType  map) [inline]

Definition at line 160 of file itkVideoStream.h.

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrame ( SizeValueType  frameNumber,
FramePointer  frame 
)

Set the contents of the frame at a given frame number

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameBuffer ( BufferType buffer)

Set the internal pixel buffer

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameBufferedSpatialRegion ( SizeValueType  frameNumber,
SpatialRegionType  region 
)

Get/Set the BufferedRegion of a frame

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameDirection ( SizeValueType  frameNumber,
DirectionType  direction 
)

Get/Set the Direction of a frame

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameLargestPossibleSpatialRegion ( SizeValueType  frameNumber,
SpatialRegionType  region 
)

Get/Set the LargestPossibleRegion of a frame

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameOrigin ( SizeValueType  frameNumber,
PointType  origin 
)

Get/Set the Origin of a frame

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameRequestedSpatialRegion ( SizeValueType  frameNumber,
SpatialRegionType  region 
)

Get/Set the RequestedRegion of a frame

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetFrameSpacing ( SizeValueType  frameNumber,
SpacingType  spacing 
)

Get/Set the Spacing of a frame

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetLargestPossibleSpatialRegionCache ( SpatialRegionMapType  map) [inline]

Provide access to the internal caches for the meta data

Definition at line 114 of file itkVideoStream.h.

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetMinimumBufferSize ( SizeValueType  minimumNumberOfFrames)

Safely expand the internal ring buffer.

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetOriginCache ( PointMapType  map) [inline]

Definition at line 151 of file itkVideoStream.h.

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetRequestedSpatialRegionCache ( SpatialRegionMapType  map) [inline]

Definition at line 124 of file itkVideoStream.h.

template<class TFrameType >
void itk::VideoStream< TFrameType >::SetSpacingCache ( SpacingMapType  map) [inline]

Definition at line 142 of file itkVideoStream.h.


Member Data Documentation

template<class TFrameType >
const unsigned int itk::VideoStream< TFrameType >::FrameDimension = FrameType::ImageDimension [static]

Access the spacial dimensionality of the frames

Definition at line 72 of file itkVideoStream.h.

template<class TFrameType >
SpatialRegionMapType itk::VideoStream< TFrameType >::m_BufferedSpatialRegionCache [protected]

Definition at line 299 of file itkVideoStream.h.

template<class TFrameType >
DirectionMapType itk::VideoStream< TFrameType >::m_DirectionCache [protected]

Definition at line 304 of file itkVideoStream.h.

template<class TFrameType >
SpatialRegionMapType itk::VideoStream< TFrameType >::m_LargestPossibleSpatialRegionCache [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 existance at the time when the region gets set.

Definition at line 297 of file itkVideoStream.h.

template<class TFrameType >
PointMapType itk::VideoStream< TFrameType >::m_OriginCache [protected]

Definition at line 305 of file itkVideoStream.h.

template<class TFrameType >
SpatialRegionMapType itk::VideoStream< TFrameType >::m_RequestedSpatialRegionCache [protected]

Definition at line 298 of file itkVideoStream.h.

template<class TFrameType >
SpacingMapType itk::VideoStream< TFrameType >::m_SpacingCache [protected]

These maps cache a mapping between frame number and the meta data for origin, spacing, and direction

Definition at line 303 of file itkVideoStream.h.


The documentation for this class was generated from the following file: