Operation, that holds information about some image difference. More...
#include <mitkApplyDiffImageOperation.h>
Public Member Functions | |
ApplyDiffImageOperation (OperationType operationType, Image *image, Image *diffImage, unsigned int timeStep=0, unsigned int sliceDimension=2, unsigned int sliceIndex=0) | |
virtual | ~ApplyDiffImageOperation () |
unsigned int | GetSliceIndex () |
unsigned int | GetSliceDimension () |
unsigned int | GetTimeStep () |
void | SetFactor (double factor) |
double | GetFactor () |
Image * | GetImage () |
Image::ConstPointer | GetDiffImage () |
bool | IsImageStillValid () |
Protected Member Functions | |
void | OnImageDeleted () |
Protected Attributes | |
Image * | m_Image |
unsigned int | m_SliceIndex |
unsigned int | m_SliceDimension |
unsigned int | m_TimeStep |
double | m_Factor |
bool | m_ImageStillValid |
unsigned long | m_DeleteTag |
CompressedImageContainer::Pointer | zlibContainer |
Operation, that holds information about some image difference.
This class stores undo information for DiffImageApplier. Instances of this class are created e.g. by OverwriteSliceImageFilter. This works only for images with 1 channel (gray scale images, no color images).
ApplyDiffImageOperation of course refers to an image (a segmentation usually). The refered image is observed for itk::DeleteEvent, because there is no SmartPointer used to keep the image alive -- the purpose of this class is undo and the undo stack should not keep things alive forever.
To save memory, zlib compression is used via CompressedImageContainer.
Definition at line 45 of file mitkApplyDiffImageOperation.h.
mitk::ApplyDiffImageOperation::ApplyDiffImageOperation | ( | OperationType | operationType, |
Image * | image, | ||
Image * | diffImage, | ||
unsigned int | timeStep = 0 , |
||
unsigned int | sliceDimension = 2 , |
||
unsigned int | sliceIndex = 0 |
||
) |
Pass only 2D images here.
sliceIndex | brief Which slice to extract (first one has index 0). |
sliceDimension | Number of the dimension which is constant for all pixels of the desired slice (e.g. 0 for transversal) |
Definition at line 23 of file mitkApplyDiffImageOperation.cpp.
References m_DeleteTag, m_ImageStillValid, mitk::CompressedImageContainer::New(), OnImageDeleted(), and zlibContainer.
: Operation(operationType), m_Image( image ), m_SliceIndex( sliceIndex ), m_SliceDimension( sliceDimension ), m_TimeStep( timeStep ), m_Factor( 1.0 ), m_ImageStillValid( false ), m_DeleteTag( 0 ) { if (image && diffImage) { // observe 3D image for DeleteEvent m_ImageStillValid = true; itk::SimpleMemberCommand< ApplyDiffImageOperation >::Pointer command = itk::SimpleMemberCommand< ApplyDiffImageOperation >::New(); command->SetCallbackFunction( this, &ApplyDiffImageOperation::OnImageDeleted ); m_DeleteTag = image->AddObserver( itk::DeleteEvent(), command ); // keep a compressed version of the image zlibContainer = CompressedImageContainer::New(); zlibContainer->SetImage( diffImage ); } }
mitk::ApplyDiffImageOperation::~ApplyDiffImageOperation | ( | ) | [virtual] |
Definition at line 48 of file mitkApplyDiffImageOperation.cpp.
{ if (m_ImageStillValid) { m_Image->RemoveObserver( m_DeleteTag ); } }
mitk::Image::ConstPointer mitk::ApplyDiffImageOperation::GetDiffImage | ( | ) |
Definition at line 61 of file mitkApplyDiffImageOperation.cpp.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ // uncompress image to create a valid mitk::Image Image::ConstPointer image = zlibContainer->GetImage().GetPointer(); return image; }
double mitk::ApplyDiffImageOperation::GetFactor | ( | ) | [inline] |
Definition at line 78 of file mitkApplyDiffImageOperation.h.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ return m_Factor; }
Image* mitk::ApplyDiffImageOperation::GetImage | ( | void | ) | [inline] |
Definition at line 80 of file mitkApplyDiffImageOperation.h.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ return m_Image; }
unsigned int mitk::ApplyDiffImageOperation::GetSliceDimension | ( | ) | [inline] |
Definition at line 74 of file mitkApplyDiffImageOperation.h.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ return m_SliceDimension; }
unsigned int mitk::ApplyDiffImageOperation::GetSliceIndex | ( | ) | [inline] |
Definition at line 73 of file mitkApplyDiffImageOperation.h.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ return m_SliceIndex; }
unsigned int mitk::ApplyDiffImageOperation::GetTimeStep | ( | ) | [inline] |
Definition at line 75 of file mitkApplyDiffImageOperation.h.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ return m_TimeStep; }
bool mitk::ApplyDiffImageOperation::IsImageStillValid | ( | ) | [inline] |
Definition at line 83 of file mitkApplyDiffImageOperation.h.
Referenced by mitk::DiffImageApplier::ExecuteOperation().
{ return m_ImageStillValid; }
void mitk::ApplyDiffImageOperation::OnImageDeleted | ( | ) | [protected] |
Definition at line 56 of file mitkApplyDiffImageOperation.cpp.
Referenced by ApplyDiffImageOperation().
{ m_ImageStillValid = false; }
void mitk::ApplyDiffImageOperation::SetFactor | ( | double | factor ) | [inline] |
Definition at line 77 of file mitkApplyDiffImageOperation.h.
Referenced by QmitkSlicesInterpolator::AcceptAllInterpolations(), and mitk::OverwriteSliceImageFilter::GenerateData().
{ m_Factor = factor; }
unsigned long mitk::ApplyDiffImageOperation::m_DeleteTag [protected] |
Definition at line 58 of file mitkApplyDiffImageOperation.h.
Referenced by ApplyDiffImageOperation().
double mitk::ApplyDiffImageOperation::m_Factor [protected] |
Definition at line 55 of file mitkApplyDiffImageOperation.h.
Image* mitk::ApplyDiffImageOperation::m_Image [protected] |
Definition at line 51 of file mitkApplyDiffImageOperation.h.
bool mitk::ApplyDiffImageOperation::m_ImageStillValid [protected] |
Definition at line 56 of file mitkApplyDiffImageOperation.h.
Referenced by ApplyDiffImageOperation().
unsigned int mitk::ApplyDiffImageOperation::m_SliceDimension [protected] |
Definition at line 53 of file mitkApplyDiffImageOperation.h.
unsigned int mitk::ApplyDiffImageOperation::m_SliceIndex [protected] |
Definition at line 52 of file mitkApplyDiffImageOperation.h.
unsigned int mitk::ApplyDiffImageOperation::m_TimeStep [protected] |
Definition at line 54 of file mitkApplyDiffImageOperation.h.
Definition at line 60 of file mitkApplyDiffImageOperation.h.
Referenced by ApplyDiffImageOperation().