SeedsImage class for storing seeds-images. More...
#include <mitkSeedsImage.h>


Public Types | |
| typedef SeedsImage | Self |
| typedef Image | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| virtual mitk::Point3D | GetLastPoint () |
| void | Initialize () |
| virtual void | ExecuteOperation (Operation *operation) |
| handles operations | |
| void | ClearBuffer () |
Static Public Member Functions | |
| static Pointer | New () |
Protected Types | |
| typedef itk::Image< float, 3 > | MaskImageType |
| typedef itk::GaussianSpatialFunction < int, 3 > | GaussianFunction3DType |
| typedef itk::GaussianSpatialFunction < int, 2 > | GaussianFunction2DType |
| typedef itk::BinaryBallStructuringElement < short, 3 > | BallStructuringElement3DType |
| typedef itk::BinaryBallStructuringElement < short, 2 > | BallStructuringElement2DType |
Protected Member Functions | |
| SeedsImage () | |
| virtual | ~SeedsImage () |
| template<typename SeedsImageType > | |
| itk::NeighborhoodIterator < SeedsImageType > & | GetNit (SeedsImageType *image) |
| template<typename SeedsImageType > | |
| void | AddSeedPoint (SeedsImageType *itkImage) |
| sets a sphere of seeds around the point | |
| template<typename SeedsImageType > | |
| void | PointInterpolation (SeedsImageType *itkImage) |
| interpolates a tube of seeds between two points | |
| template<typename SeedsImageType > | |
| void | ClearBuffer (SeedsImageType *itkImage) |
| interpolates a tube of seeds between two points | |
Protected Attributes | |
| mitk::Point3D | m_Point |
| mitk::Point3D | m_LastPoint |
| mitk::Vector3D | m_Spacing |
| int | orig_size [3] |
| int | m_DrawState |
| int | m_Radius |
| float | delta_x |
| float | delta_y |
| float | delta_z |
| float | sphere_distance |
| GaussianFunction3DType::Pointer | m_GaussianFunction3D |
| GaussianFunction2DType::Pointer | m_GaussianFunction2D |
| BallStructuringElement3DType | m_StructuringElement3D |
| BallStructuringElement2DType | m_StructuringElement2D |
SeedsImage class for storing seeds-images.
Handles operations for drawing seeds.
Definition at line 39 of file mitkSeedsImage.h.
typedef itk::BinaryBallStructuringElement< short, 2 > mitk::SeedsImage::BallStructuringElement2DType [protected] |
Definition at line 96 of file mitkSeedsImage.h.
typedef itk::BinaryBallStructuringElement< short, 3 > mitk::SeedsImage::BallStructuringElement3DType [protected] |
Definition at line 94 of file mitkSeedsImage.h.
| typedef itk::SmartPointer<const Self> mitk::SeedsImage::ConstPointer |
Reimplemented from mitk::Image.
Definition at line 44 of file mitkSeedsImage.h.
typedef itk::GaussianSpatialFunction< int, 2 > mitk::SeedsImage::GaussianFunction2DType [protected] |
Definition at line 91 of file mitkSeedsImage.h.
typedef itk::GaussianSpatialFunction< int, 3 > mitk::SeedsImage::GaussianFunction3DType [protected] |
Definition at line 89 of file mitkSeedsImage.h.
typedef itk::Image<float,3> mitk::SeedsImage::MaskImageType [protected] |
Definition at line 87 of file mitkSeedsImage.h.
| typedef itk::SmartPointer<Self> mitk::SeedsImage::Pointer |
Reimplemented from mitk::Image.
Definition at line 44 of file mitkSeedsImage.h.
| typedef SeedsImage mitk::SeedsImage::Self |
Reimplemented from mitk::Image.
Definition at line 44 of file mitkSeedsImage.h.
| typedef Image mitk::SeedsImage::Superclass |
Reimplemented from mitk::Image.
Definition at line 44 of file mitkSeedsImage.h.
| mitk::SeedsImage::SeedsImage | ( | ) | [protected] |
Definition at line 31 of file mitkSeedsImage.cpp.
References m_GaussianFunction2D, m_GaussianFunction3D, and New().
| mitk::SeedsImage::~SeedsImage | ( | ) | [protected, virtual] |
Definition at line 37 of file mitkSeedsImage.cpp.
{
}
| void mitk::SeedsImage::AddSeedPoint | ( | SeedsImageType * | itkImage ) | [protected] |
sets a sphere of seeds around the point
Definition at line 121 of file mitkSeedsImage.cpp.
References int().
{
typedef itk::NeighborhoodIterator< SeedsImageType >
NeighborhoodIteratorType;
typedef typename NeighborhoodIteratorType::IndexType IndexType;
NeighborhoodIteratorType& nit = this->GetNit< SeedsImageType >( itkImage );
const unsigned int dimension =
::itk::GetImageDimension<SeedsImageType>::ImageDimension;
mitk::Point3D index;
this->GetGeometry()->WorldToIndex( m_Point, index );
IndexType itkIndex;
unsigned int d;
for ( d = 0; d < dimension; ++d )
{
itkIndex[d] = (int)(index[d] + 0.5);
}
nit.SetLocation( itkIndex );
unsigned int i;
for ( i = 0; i < nit.Size(); ++i )
{
if ( nit[i] != 0 )
{
try
{
nit.SetPixel( i, m_DrawState );
}
catch( itk::RangeError & )
{
}
}
}
}
| void mitk::SeedsImage::ClearBuffer | ( | ) |
Definition at line 216 of file mitkSeedsImage.cpp.
References AccessByItk.
{
AccessByItk(this, ClearBuffer);
}
| void mitk::SeedsImage::ClearBuffer | ( | SeedsImageType * | itkImage ) | [protected] |
interpolates a tube of seeds between two points
Definition at line 222 of file mitkSeedsImage.cpp.
{
itkImage->FillBuffer(0);
}
| void mitk::SeedsImage::ExecuteOperation | ( | mitk::Operation * | operation ) | [virtual] |
handles operations
Reimplemented from mitk::BaseData.
Definition at line 48 of file mitkSeedsImage.cpp.
References AccessByItk, mitk::DrawOperation::GetDrawState(), mitk::RenderingManager::GetInstance(), mitk::Operation::GetOperationType(), mitk::DrawOperation::GetPoint(), mitk::DrawOperation::GetRadius(), mitk::OpADD, mitk::OpMOVE, mitk::OpUNDOADD, mitk::OpUNDOMOVE, and mitk::RenderingManager::RequestUpdateAll().
{
//mitkCheckOperationTypeMacro(SeedsOperation, operation, seedsOp);
m_Spacing = this->GetGeometry()->GetSpacing();
for(unsigned int i=0; i<this->GetDimension(); i++)
orig_size[i] = this->GetDimension(i);
mitk::DrawOperation * seedsOp =
dynamic_cast< mitk::DrawOperation * >( operation );
if ( seedsOp != NULL )
{
m_DrawState = seedsOp->GetDrawState();
if (m_Radius != seedsOp->GetRadius())
{
m_Radius = seedsOp->GetRadius();
}
switch (operation->GetOperationType())
{
case mitk::OpADD:
{
m_Point = seedsOp->GetPoint();
m_LastPoint = m_Point;
AccessByItk(this, AddSeedPoint);
break;
}
case mitk::OpMOVE:
{
m_Point = seedsOp->GetPoint();
AccessByItk(this, AddSeedPoint);
AccessByItk(this, PointInterpolation);
m_LastPoint = m_Point;
break;
}
case mitk::OpUNDOADD:
{
m_Point = seedsOp->GetPoint();
m_LastPoint = m_Point;
m_DrawState = 0;
// todo - operation is not equal with its inverse operation - possible
// approximation problems in the function PointInterpolation()
m_Radius = m_Radius+4;
AccessByItk(this, AddSeedPoint);
break;
}
case mitk::OpUNDOMOVE:
{
m_Point = seedsOp->GetPoint();
m_DrawState = 0;
// todo - operation is not equal with its inverse operation - possible
// approximation problems in the function PointInterpolation()
m_Radius = m_Radius+4;
AccessByItk(this, AddSeedPoint);
AccessByItk(this, PointInterpolation);
m_LastPoint = m_Point;
break;
}
}
//*todo has to be done here, cause of update-pipeline not working yet
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
//mitk::RenderingManager::GetInstance()->ForceImmediateUpdateAll();
this->Modified();
}
}
| virtual const char* mitk::SeedsImage::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::Image.
| virtual mitk::Point3D mitk::SeedsImage::GetLastPoint | ( | ) | [virtual] |
| itk::NeighborhoodIterator< SeedsImageType > & mitk::SeedsImage::GetNit | ( | SeedsImageType * | image ) | [protected] |
Definition at line 229 of file mitkSeedsImage.cpp.
References QuadProgPP::dist().
{
typedef itk::NeighborhoodIterator< SeedsImageType >
NeighborhoodIteratorType;
typedef typename NeighborhoodIteratorType::OffsetType OffsetType;
typedef typename NeighborhoodIteratorType::SizeType SizeType;
typedef itk::GaussianSpatialFunction< int, SeedsImageType::ImageDimension >
GaussianFunctionType;
static SeedsImageType* iteratedImage = 0;
static NeighborhoodIteratorType nit;
static typename GaussianFunctionType::Pointer gaussianFunction
= GaussianFunctionType::New();
if ( iteratedImage != image )
{
SizeType radius;
radius.Fill( m_Radius);
nit.Initialize( radius, image, image->GetBufferedRegion() );
iteratedImage = image;
}
nit.SetRadius( m_Radius );
unsigned int i;
for ( i = 0; i < nit.GetCenterNeighborhoodIndex()*2+1; ++i )
{
OffsetType offset = nit.GetOffset( i );
typename GaussianFunctionType::InputType point;
double dist = 0;
unsigned int d;
for ( d = 0; d < SeedsImageType::ImageDimension; ++d )
{
point[d] = offset[d];
dist += offset[d] * offset[d];
}
}
return nit;
}
| void mitk::SeedsImage::Initialize | ( | void | ) | [virtual] |
Reimplemented from mitk::Image.
Definition at line 41 of file mitkSeedsImage.cpp.
{
Superclass::Initialize();
m_Radius = 1;
}
| static Pointer mitk::SeedsImage::New | ( | ) | [static] |
Reimplemented from mitk::Image.
Referenced by SeedsImage(), and mitkDataNodeExtTestClass::TestDataSetting().
| void mitk::SeedsImage::PointInterpolation | ( | SeedsImageType * | itkImage ) | [protected] |
interpolates a tube of seeds between two points
Definition at line 162 of file mitkSeedsImage.cpp.
References int().
{
typedef itk::NeighborhoodIterator< SeedsImageType >
NeighborhoodIteratorType;
typedef typename NeighborhoodIteratorType::IndexType IndexType;
NeighborhoodIteratorType& nit = this->GetNit< SeedsImageType >( itkImage );
const unsigned int dimension =
::itk::GetImageDimension<SeedsImageType>::ImageDimension;
mitk::Point3D indexBegin, indexEnd;
this->GetGeometry()->WorldToIndex( m_Point, indexBegin );
this->GetGeometry()->WorldToIndex( m_LastPoint, indexEnd );
IndexType itkIndexBegin, itkIndexEnd;
unsigned int d;
for ( d = 0; d < dimension; ++d )
{
itkIndexBegin[d] = (int)(indexBegin[d] + 0.5);
itkIndexEnd[d] = (int)(indexEnd[d] + 0.5);
}
typedef itk::LineConstIterator< SeedsImageType > LineIteratorType;
LineIteratorType lit( itkImage, itkIndexBegin, itkIndexEnd );
// Disable warnings (which would otherwise be displayed if line leaves the
// region).
bool warningDisplay = itk::Object::GetGlobalWarningDisplay();
itk::Object::GlobalWarningDisplayOff();
for ( lit.GoToBegin(); !lit.IsAtEnd(); ++lit )
{
nit.SetLocation( lit.GetIndex() );
unsigned int i;
for ( i = 0; i < nit.Size(); ++i )
{
if ( nit[i] != 0 )
{
try
{
nit.SetPixel( i, m_DrawState );
}
catch( itk::RangeError & )
{
}
}
}
}
itk::Object::SetGlobalWarningDisplay( warningDisplay );
}
float mitk::SeedsImage::delta_x [protected] |
Definition at line 84 of file mitkSeedsImage.h.
float mitk::SeedsImage::delta_y [protected] |
Definition at line 84 of file mitkSeedsImage.h.
float mitk::SeedsImage::delta_z [protected] |
Definition at line 84 of file mitkSeedsImage.h.
int mitk::SeedsImage::m_DrawState [protected] |
Definition at line 82 of file mitkSeedsImage.h.
GaussianFunction2DType::Pointer mitk::SeedsImage::m_GaussianFunction2D [protected] |
Definition at line 92 of file mitkSeedsImage.h.
Referenced by SeedsImage().
GaussianFunction3DType::Pointer mitk::SeedsImage::m_GaussianFunction3D [protected] |
Definition at line 90 of file mitkSeedsImage.h.
Referenced by SeedsImage().
mitk::Point3D mitk::SeedsImage::m_LastPoint [protected] |
Definition at line 79 of file mitkSeedsImage.h.
mitk::Point3D mitk::SeedsImage::m_Point [protected] |
Definition at line 78 of file mitkSeedsImage.h.
int mitk::SeedsImage::m_Radius [protected] |
Definition at line 83 of file mitkSeedsImage.h.
mitk::Vector3D mitk::SeedsImage::m_Spacing [protected] |
Definition at line 80 of file mitkSeedsImage.h.
Definition at line 97 of file mitkSeedsImage.h.
Definition at line 95 of file mitkSeedsImage.h.
int mitk::SeedsImage::orig_size[3] [protected] |
Definition at line 81 of file mitkSeedsImage.h.
float mitk::SeedsImage::sphere_distance [protected] |
Definition at line 85 of file mitkSeedsImage.h.
1.7.2