DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue > Class Template Reference

#include <ImageContainerByITKImage.h>

Public Types

typedef TValue Value
typedef TDomain Domain
typedef Domain::Point Point
typedef Domain::Vector Vector
typedef Domain::Dimension Dimension
typedef Domain::Integer Integer
typedef Domain::Size Size
typedef Point Vertex
typedef itk::Image< TValue,
dimension
ITKImage
typedef ITKImage::Pointer ITKImagePointer
typedef
itk::ImageRegionConstIterator
< ITKImage
ConstIterator
typedef
itk::ImageRegionIterator
< ITKImage
Iterator

Public Member Functions

 BOOST_CONCEPT_ASSERT ((CLabel< TValue >))
 BOOST_CONCEPT_ASSERT ((CDomain< TDomain >))
 ImageContainerByITKImage (const Point &aPointA, const Point &aPointB)
 ImageContainerByITKImage (const Point &aPointA, const Point &aPointB, ITKImagePointer &aRef)
 ~ImageContainerByITKImage ()
Value operator() (const Point &aPoint) const
Value operator() (const ConstIterator &it) const
Value operator() (const Iterator &it) const
void setValue (const Point &aPoint, const Value &aValue)
void setValue (Iterator &it, const Value &V)
Domain domain () const
Point extent () const
ITKImagePointer getImagePointer () const
void selfDisplay (std::ostream &out) const
bool isValid () const
ConstIterator begin () const
Iterator begin ()
ConstIterator begin (const Point &aPoint) const
const ConstIterator end () const
Iterator end ()
ConstIterator end (const Point &aPoint) const

Static Public Attributes

static const Domain::Dimension dimension = Domain::dimension

Protected Member Functions

 ImageContainerByITKImage ()

Private Member Functions

 ImageContainerByITKImage (const ImageContainerByITKImage &other)
ImageContainerByITKImageoperator= (const ImageContainerByITKImage &other)

Private Attributes

Point myLowerBound
Point myUpperBound
ITKImagePointer myITKImagePointer
ITKImage::RegionType myRegion
ConstIterator myConstItBegin
Iterator myItBegin
ConstIterator myConstItEnd
Iterator myItEnd

Detailed Description

template<typename TDomain, typename TValue>
class DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >

Aim: implements a model of CImageContainer using a ITK Image.

Description of template class 'ImageContainerByITKImage'

Using this container, you can switch from DGtal alogrithms to ITK processing pipeline.

See also:
testITKImage.cpp

Definition at line 71 of file ImageContainerByITKImage.h.


Member Typedef Documentation

template<typename TDomain, typename TValue>
typedef itk::ImageRegionConstIterator< ITKImage > DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ConstIterator

Definition at line 94 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef Domain::Dimension DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Dimension

Definition at line 87 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef TDomain DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Domain

Definition at line 80 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef Domain::Integer DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Integer

Definition at line 88 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef itk::ImageRegionIterator< ITKImage > DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Iterator

Definition at line 95 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef itk::Image< TValue, dimension> DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ITKImage

Definition at line 92 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef ITKImage::Pointer DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ITKImagePointer

Definition at line 93 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef Domain::Point DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Point

Definition at line 85 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef Domain::Size DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Size

Definition at line 89 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef TValue DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Value

Definition at line 79 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef Domain::Vector DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Vector

Definition at line 86 of file ImageContainerByITKImage.h.

template<typename TDomain, typename TValue>
typedef Point DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::Vertex

Definition at line 90 of file ImageContainerByITKImage.h.


Constructor & Destructor Documentation

template<typename TDomain , typename TValue >
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ImageContainerByITKImage ( const Point aPointA,
const Point aPointB 
)
inline
Todo:
SpanIterator

Constructor.

Parameters:
aPointAone of the image bound (lower or upper point).
aPointBone of the image bound (lower or upper point).

Definition at line 57 of file ImageContainerByITKImage.ih.

References DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::dimension, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myConstItBegin, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myConstItEnd, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myItBegin, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myItEnd, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myITKImagePointer, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myLowerBound, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myRegion, and DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myUpperBound.

: myITKImagePointer(ITKImage::New())
{
typename ITKImage::IndexType start;
typename ITKImage::SizeType size;
if (aPointA < aPointB)
{
myLowerBound = aPointA;
myUpperBound = aPointB;
}
else
{
myLowerBound = aPointB;
myUpperBound = aPointA;
}
//copy of domain information
for (Dimension k = 0; k < dimension; k++)
{
start[k] = myLowerBound[k];
size[k] = dec[k];
}
myRegion.SetSize( size );
myRegion.SetIndex( start );
myITKImagePointer->Allocate();
//ConstIterators
myConstItBegin.GoToBegin();
myConstItEnd.GoToEnd();
//Iterators
myItBegin.GoToBegin();
myItEnd.GoToEnd();
}
template<typename TDomain , typename TValue >
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ImageContainerByITKImage ( const Point aPointA,
const Point aPointB,
ITKImagePointer aRef 
)
inline

Constructor.

Parameters:
aPointAone of the image bound (lower or upper point).
aPointBone of the image bound (lower or upper point).
aRefa reference to an ITKImage

Definition at line 104 of file ImageContainerByITKImage.ih.

References DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::dimension, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myConstItBegin, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myConstItEnd, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myItBegin, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myItEnd, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myITKImagePointer, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myLowerBound, DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myRegion, and DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myUpperBound.

{
typename ITKImage::IndexType start;
typename ITKImage::SizeType size;
if (aPointA < aPointB)
{
myLowerBound = aPointA;
myUpperBound = aPointB;
}
else
{
myLowerBound = aPointB;
myUpperBound = aPointA;
}
//copy of domain information
for (Dimension k = 0; k < dimension; k++)
{
start[k] = myLowerBound[k];
size[k] = dec[k];
}
myRegion.SetSize( size );
myRegion.SetIndex( start );
myITKImagePointer->SetRegions(myRegion);
//ConstIterators
myConstItBegin.GoToBegin();
myConstItEnd.GoToEnd();
//Iterators
myItBegin.GoToBegin();
myItEnd.GoToEnd();
}
template<typename TDomain , typename TValue >
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::~ImageContainerByITKImage ( )
inline

Destructor.

Definition at line 51 of file ImageContainerByITKImage.ih.

{
}
template<typename TDomain, typename TValue>
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ImageContainerByITKImage ( )
protected

Constructor. Forbidden by default (protected to avoid g++ warnings).

template<typename TDomain, typename TValue>
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::ImageContainerByITKImage ( const ImageContainerByITKImage< TDomain, TValue > &  other)
private

Copy constructor.

Parameters:
otherthe object to clone. Forbidden by default.

Member Function Documentation

template<typename TDomain, typename TValue>
ConstIterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::begin ( ) const
inline
template<typename TDomain, typename TValue>
Iterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::begin ( )
inline
template<typename TDomain, typename TValue>
ConstIterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::begin ( const Point aPoint) const

begin(aPoint) iterator. Returns an iterator starting at

Parameters:
aPoint
template<typename TDomain, typename TValue>
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::BOOST_CONCEPT_ASSERT ( (CLabel< TValue >)  )
template<typename TDomain, typename TValue>
DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::BOOST_CONCEPT_ASSERT ( (CDomain< TDomain >)  )
template<typename TDomain, typename TValue>
Domain DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::domain ( ) const
inline
template<typename TDomain, typename TValue>
const ConstIterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::end ( ) const
inline
template<typename TDomain, typename TValue>
Iterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::end ( )
inline
template<typename TDomain, typename TValue>
ConstIterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::end ( const Point aPoint) const

end() iterator.

Returns:
a ConstIterator at the endpoint
Parameters:
aPoint
template<typename TDomain, typename TValue>
Point DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::extent ( ) const
inline
template<typename TDomain, typename TValue>
ITKImagePointer DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::getImagePointer ( ) const
inline

Returns a copy of the itkImage smartPointer

Definition at line 191 of file ImageContainerByITKImage.h.

References DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myITKImagePointer.

{
}
template<typename TDomain , typename TValue >
bool DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::isValid ( ) const
inline

Checks the validity/consistency of the object.

Returns:
'true' if the object is valid, 'false' otherwise.

Definition at line 238 of file ImageContainerByITKImage.ih.

{
return true;
}
template<typename TDomain , typename TValue >
TValue DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::operator() ( const Point aPoint) const
inline

Get the value of an image at a given position.

Parameters:
aPointposition in the image.
Returns:
the value at aPoint.

Definition at line 162 of file ImageContainerByITKImage.ih.

{
typename ITKImage::IndexType p;
for (Dimension k = 0; k < dimension; k++)
p[k] = aPoint[k];
return myITKImagePointer->GetPixel(p);
}
template<typename TDomain , typename TValue >
TValue DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::operator() ( const ConstIterator it) const
inline

Get the value of an image at a given position.

Parameters:
itposition in the image.
Returns:
the value at aPoint.

Get the value of an image at a given position.

Parameters:
aPointposition in the image.
Returns:
the value at aPoint.

Definition at line 179 of file ImageContainerByITKImage.ih.

{
return it.Get();
}
template<typename TDomain , typename TValue >
TValue DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::operator() ( const Iterator it) const
inline

Get the value of an image at a given position.

Parameters:
itposition in the image.
Returns:
the value at aPoint.

Get the value of an image at a given position.

Parameters:
aPointposition in the image.
Returns:
the value at aPoint.

Definition at line 193 of file ImageContainerByITKImage.ih.

{
return it.Get();
}
template<typename TDomain, typename TValue>
ImageContainerByITKImage& DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::operator= ( const ImageContainerByITKImage< TDomain, TValue > &  other)
private

Assignment.

Parameters:
otherthe object to copy.
Returns:
a reference on 'this'. Forbidden by default.
template<typename TDomain , typename TValue >
void DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::selfDisplay ( std::ostream &  out) const
inline

Writes/Displays the object on an output stream.

Parameters:
outthe output stream where the object is written.

Definition at line 224 of file ImageContainerByITKImage.ih.

{
out << "[ImageContainerByITKImage] valuetype=" << sizeof(TValue)
<< "bytes lower=" << myLowerBound << " upper="
}
template<typename TDomain, typename TValue>
void DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::setValue ( const Point aPoint,
const Value aValue 
)

Set a value on an Image at aPoint.

Parameters:
aPointlocation of the point to associate with aValue.
aValuethe value.
template<typename TDomain, typename TValue>
void DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::setValue ( Iterator it,
const Value V 
)

Set a value on an Image at aPoint.

Parameters:
itlocation of the point (Iterator) to associate with aValue.
aValuethe value.

Field Documentation

template<typename TDomain, typename TValue>
const Domain::Dimension DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::dimension = Domain::dimension
static
template<typename TDomain, typename TValue>
ConstIterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myConstItBegin
private
template<typename TDomain, typename TValue>
ConstIterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myConstItEnd
private
template<typename TDomain, typename TValue>
Iterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myItBegin
private
template<typename TDomain, typename TValue>
Iterator DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myItEnd
private
template<typename TDomain, typename TValue>
ITKImagePointer DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myITKImagePointer
private
template<typename TDomain, typename TValue>
Point DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myLowerBound
private
template<typename TDomain, typename TValue>
ITKImage::RegionType DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myRegion
private
template<typename TDomain, typename TValue>
Point DGtal::experimental::ImageContainerByITKImage< TDomain, TValue >::myUpperBound
private

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