SIVIC API  0.9.26
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
svkImageData Class Referenceabstract

#include <svkImageData.h>

Inheritance diagram for svkImageData:
svk4DImageData svkMriImageData svkMrsImageData

Public Types

enum  RangeComponent { REAL = 0, IMAGINARY, MAGNITUDE }
 
enum  DataBasis {
  ROW = 0, COLUMN, SLICE, LR,
  PA, SI
}
 

Public Member Functions

 vtkTypeMacro (svkImageData, vtkImageData)
 
virtual void PrintSelf (ostream &os, vtkIndent indent)
 
virtual void DeepCopy (vtkDataObject *src)
 
virtual void DeepCopy (vtkDataObject *src, svkDcmHeader::DcmPixelDataFormat castToFormat)
 
virtual void ShallowCopy (vtkDataObject *src)
 
virtual void ShallowCopy (vtkDataObject *src, svkDcmHeader::DcmPixelDataFormat castToFormat)
 
virtual void ZeroCopy (vtkImageData *src, svkDcmHeader::DcmPixelDataFormat castToFormat=svkDcmHeader::UNDEFINED)
 
virtual void CopyAndFillComponents (vtkImageData *src, double fillValue, svkDcmHeader::DcmPixelDataFormat castToFormat=svkDcmHeader::UNDEFINED)
 
virtual void CastDataFormat (svkDcmHeader::DcmPixelDataFormat castToFormat)
 
virtual void CopyAndCastFrom (vtkImageData *inData, int extent[6])
 
virtual void CopyAndCastFrom (vtkImageData *inData, int x0, int x1, int y0, int y1, int z0, int z1)
 
virtual void CopyStructure (vtkDataSet *ds)
 
virtual void CopyDcos (vtkDataObject *src)
 
virtual void CopyVtkImage (vtkImageData *sourceImage, double dcos[][3])
 
virtual double * GetPoint (vtkIdType ptId)
 
virtual void GetPoint (vtkIdType id, double x[3])
 
virtual vtkCell * GetCell (vtkIdType cellId)
 
virtual void GetCell (vtkIdType cellId, vtkGenericCell *cell)
 
virtual void GetCellBounds (vtkIdType cellId, double bounds[6])
 
virtual vtkIdType FindPoint (double x, double y, double z)
 
virtual vtkIdType FindPoint (double x[3])
 
virtual vtkIdType FindCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
 
virtual vtkIdType FindCell (double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
 
virtual vtkCell * FindAndGetCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
 
virtual int GetCellType (vtkIdType cellId)
 
virtual void GetCellPoints (vtkIdType cellId, vtkIdList *ptIds)
 
virtual void GetPointCells (vtkIdType ptId, vtkIdList *cellIds)
 
virtual void ComputeBounds ()
 
virtual int ComputeStructuredCoordinates (double x[3], int ijk[3], double pcoords[3])
 
virtual void GetVoxelGradient (int i, int j, int k, vtkDataArray *s, vtkDataArray *g)
 
virtual void GetPointGradient (int i, int j, int k, vtkDataArray *s, double g[3])
 
virtual void SetAxisUpdateExtent (int axis, int min, int max)
 
virtual void GetAxisUpdateExtent (int axis, int &min, int &max)
 
virtual void SetDcos (double x[3][3])
 
virtual void GetDcos (double x[3][3])
 
void SetDcmHeader (svkDcmHeader *dcmHeader)
 
svkDcmHeaderGetDcmHeader ()
 
void SetProvenance (svkProvenance *provenance)
 
svkProvenanceGetProvenance ()
 
int GetIDFromIndex (int indexX, int indexY, int indexZ)
 
virtual void GetNumberOfVoxels (int numVoxels[3])=0
 
void GetIndexFromID (int voxelID, int *indexX, int *indexY, int *indexZ)
 
void GetIndexFromID (int voxelID, int *index)
 
void GetIndexFromPosition (double posLPS[3], int *index)
 
void GetIndexFromPosition (double posLPS[3], double *index)
 
virtual void GetPositionFromIndex (int *index, double *posLPS)
 
virtual void GetSliceOrigin (int slice, double *sliceOrigin, svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION)
 
virtual void GetSliceCenter (int slice, double *sliceCenter, svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION)
 
virtual void GetSliceNormal (double *normal, svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION)
 
virtual int GetClosestSlice (double *posLPS, svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION, double tolerance=-1)
 
virtual int GetNumberOfSlices (svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION)
 
virtual int GetFirstSlice (svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION)
 
virtual int GetLastSlice (svkDcmHeader::Orientation sliceOrientation=svkDcmHeader::UNKNOWN_ORIENTATION)
 
virtual void GetDataBasis (double basisVector[3], DataBasis basis)
 
virtual int GetOrientationIndex (svkDcmHeader::Orientation orientation)
 
virtual void GetImageCenter (double *center)
 
void GetDataRange (double range[2], int component)
 Getter of the data range variable. More...
 
void SetDataRange (double range[2], int component)
 Setter of the data range variable. More...
 
void SetSourceData (svkImageData *source)
 
svkImageDataGetSourceData ()
 
void SyncVTKImageDataToDcmHeader ()
 
 vtkSetStringMacro (SourceFileName)
 
 vtkGetStringMacro (SourceFileName)
 

Static Public Member Functions

static void RemoveArrays (svkImageData *data)
 

Protected Member Functions

 svkImageData ()
 
 ~svkImageData ()
 
bool WasModified ()
 
virtual void UpdateSvkParams ()
 
virtual void UpdateRange (int component)
 
int FindMatchingSlice (double *posLPS, svkDcmHeader::Orientation sliceOrientation, double *origin, double *spacing, double tolerance=-1)
 

Protected Attributes

svkDcmHeaderdcmHeader
 
svkProvenanceprovenance
 
char * SourceFileName
 
svkImageDatasource
 
double range [3][2]
 Range needs to be able to accomodate real, imaginary, and magnitude components. More...
 

Detailed Description

Oblique extention to vtkImageData. This class contains a length 9 double array to contain the directional cosine matrix. Using this methods like "GetPoint" and "GetCell" can be overridden to cause the oblique nature of the dataset to be accurately represented. NOTE: Many of the methods are not implemented currently, only those that are necessary for the filters/actors that we are using to represent image data.

Note, the svkImageData's DICOM header (svkDcmHeader) contains the following fields that define the data orientation:

  1. imageOrientationPatient (the row and column vector that define the slice plane).
  2. imagePositionPatient (the explicit position of each slice (frame))

The "right handed" normal to the plane defined by 1, gives the positive S direction (for an Axial Data Set).

The data ordering or 3rd row of the DCOS matrix is implicitly given by the coordinates in consecutive imagePositionPatient fields for each frame.

Data ordering is only explicitly encoded in the 3x3 DCOS in the svkImageData object to indicate the spatial relation of data buffer ordering.

Member Enumeration Documentation

enum DataBasis
Enumerator
ROW 
COLUMN 
SLICE 
LR 
PA 
SI 
Enumerator
REAL 
IMAGINARY 
MAGNITUDE 

Constructor & Destructor Documentation

svkImageData ( )
protected

Constructor. Creates a default directional cosine matrix. dcos = +x, +y, -z. The order is Ux, Vx, Wx, Uy, Vy, Wy, Uz, Vz, Wz.

References svkImageData::dcmHeader, svkDcmHeader::DCMTK_API, svkProvenance::New(), svkDcmtkAdapter::New(), svkFastCellData::New(), svkImageData::provenance, svkImageData::range, svkImageData::source, and svkImageData::SourceFileName.

~svkImageData ( )
protected

Member Function Documentation

void CastDataFormat ( svkDcmHeader::DcmPixelDataFormat  castToFormat)
virtual

Cast the pixel format to a different type. Only certain casts will be allowed, if you request an unsupported cast, no cast will be performed.

References svkImageData::GetDcmHeader(), svkDcmHeader::SetPixelDataType(), svkDcmHeader::SIGNED_FLOAT_4, svkDcmHeader::SIGNED_FLOAT_8, svkDcmHeader::SIGNED_INT_2, svkDcmHeader::UNDEFINED, and svkDcmHeader::UNSIGNED_INT_2.

void ComputeBounds ( )
virtual

Computes the oblique bounds.

int ComputeStructuredCoordinates ( double  x[3],
int  ijk[3],
double  pcoords[3] 
)
virtual

NOT YET IMPLEMENTED– returns 0

void CopyAndCastFrom ( vtkImageData *  inData,
int  extent[6] 
)
virtual

Copy and cast using vtkImageData::CopyAndCastFrom( vtkImageData, int[6] ) Also copies the dcos.

References svkImageData::CopyDcos().

Referenced by svkImageData::CopyAndCastFrom().

void CopyAndCastFrom ( vtkImageData *  inData,
int  x0,
int  x1,
int  y0,
int  y1,
int  z0,
int  z1 
)
virtual

Copy and cast using svkImageData::CopyAndCastFrom( vtkImageData, int[6] )

References svkImageData::CopyAndCastFrom().

void CopyAndFillComponents ( vtkImageData *  src,
double  fillValue,
svkDcmHeader::DcmPixelDataFormat  castToFormat = svkDcmHeader::UNDEFINED 
)
virtual
void CopyDcos ( vtkDataObject *  src)
virtual

Copies the dcos of a src vtkDataObject. The object must be an svkImageData or this will do nothing. It takes a vtkDataObject and checks for its type, this is only for convenience.

References svkImageData::GetDcos(), and svkImageData::SetDcos().

Referenced by svkImageData::CopyAndCastFrom(), svkImageData::CopyStructure(), svk4DImageData::GetImage(), and svkImageAlgorithmExecuter::RequestData().

void CopyStructure ( vtkDataSet *  ds)
virtual

Copies the structure: origin, extent, spacing, dcos... no data.

References svkImageData::CopyDcos().

Referenced by svkImageData::CopyAndFillComponents().

void CopyVtkImage ( vtkImageData *  sourceImage,
double  dcos[][3] 
)
virtual

DEPRECATED: USE DEEPCOPY!

This method copies a vtkImageData object by getting its origin, spacing, extent and copying its scalars from its point data, and all arrays from its vtkCellData. This is only used to create ad hoc pipelines for svkImageData. THIS METHOD IS FOR TEMOPORARY USE ONLY!!!!

References svkImageData::SetDcos(), and svkImageData::ShallowCopy().

void DeepCopy ( vtkDataObject *  src)
virtual
void DeepCopy ( vtkDataObject *  src,
svkDcmHeader::DcmPixelDataFormat  castToFormat 
)
virtual

DeepCopy creates a deep copy of svkImageData, including orientation information. First calls vtkImageData's deep copy, then also copies the dcos. Creates a derived copy of the DICOM header.

vtkCell * FindAndGetCell ( double  x[3],
vtkCell *  cell,
vtkIdType  cellId,
double  tol2,
int &  subId,
double  pcoords[3],
double *  weights 
)
virtual

NOT YET IMPLEMENTED– returns NULL

vtkIdType FindCell ( double  x[3],
vtkCell *  cell,
vtkIdType  cellId,
double  tol2,
int &  subId,
double  pcoords[3],
double *  weights 
)
virtual

NOT YET IMPLEMENTED– returns 0

vtkIdType FindCell ( double  x[3],
vtkCell *  cell,
vtkGenericCell *  gencell,
vtkIdType  cellId,
double  tol2,
int &  subId,
double  pcoords[3],
double *  weights 
)
virtual

NOT YET IMPLEMENTED– returns 0

int FindMatchingSlice ( double *  posLPS,
svkDcmHeader::Orientation  sliceOrientation,
double *  origin,
double *  spacing,
double  tolerance = -1 
)
protected

This projects a posLPS onto a normal vector through the real world origin. This is a common reference vector for both the MRI and MRS data. The projection is normalized by the relevant data slice spacing to get the nearest slice.

This method takes the origin and spacing as input so that it can be used for single voxel data as well as normal image and spectra.

If the matching slice is beyond the defined tolerance than -1 is returned.

Parameters
posLPSthe lps coordinate to match against
sliceOrientationthe orientation to match against
originthe origin to use for the matching.
spacingthe spacing to use for the matching
tolerancethe maximum permissible distance for a match
Returns
the closest slice. If the slice is outside the tolerance then -1 is returned

References svkImageData::GetDcmHeader(), svkImageData::GetOrientationIndex(), svkDcmHeader::GetOrientationType(), svkImageData::GetSliceNormal(), and svkDcmHeader::UNKNOWN_ORIENTATION.

Referenced by svkMrsImageData::GetClosestSlice(), and svkImageData::GetClosestSlice().

vtkIdType FindPoint ( double  x,
double  y,
double  z 
)
virtual

NOT YET IMPLEMENTED– returns 0

vtkIdType FindPoint ( double  x[3])
virtual

NOT YET IMPLEMENTED– returns 0

void GetAxisUpdateExtent ( int  axis,
int &  min,
int &  max 
)
virtual

NOT YET IMPLEMENTED– empty method

vtkCell * GetCell ( vtkIdType  cellId)
virtual

References dims.

Referenced by svkMrsImageData::IsSliceInSelectionBox().

void GetCell ( vtkIdType  cellId,
vtkGenericCell *  cell 
)
virtual

Get a cell based on the point ID. Since ImageData does not store cells, it is calculated.

References dims.

void GetCellBounds ( vtkIdType  cellId,
double  bounds[6] 
)
virtual

NOT YET IMPLEMENTED– empty method

References dims.

void GetCellPoints ( vtkIdType  cellId,
vtkIdList *  ptIds 
)
virtual

NOT YET IMPLEMENTED– empty method

int GetCellType ( vtkIdType  cellId)
virtual

NOT YET IMPLEMENTED– returns 0

int GetClosestSlice ( double *  posLPS,
svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION,
double  tolerance = -1 
)
virtual

Calculates the closests slice to a given LPS coordinate for a given orientation.

Parameters
posLPSthe lps coordinate to match against
sliceOrientationthe orientation to match against
tolerancethe maximum permissible distance for a match
Returns
the closest slice. If the slice is outside the tolerance

Reimplemented in svkMrsImageData.

References svkImageData::FindMatchingSlice(), svkImageData::GetDcmHeader(), and svkDcmHeader::GetOrigin().

void GetDataBasis ( double  basisVector[3],
DataBasis  basis 
)
virtual

Gets the data basis. Some calculations are easier conceptually if you use the different vectors of the dcos. The basis are ROW, COLUMN, SLICE, LR, PA, SI.

References svkImageData::COLUMN, svkImageData::LR, svkImageData::PA, svkImageData::ROW, svkImageData::SI, and svkImageData::SLICE.

Referenced by svkDataView::GetClippingPlanes(), svkImageData::GetIndexFromPosition(), svkMrsImageData::GetSelectionBoxMaxMin(), and svkMrsImageData::GetSelectionBoxOrigin().

void GetDataRange ( double  range[2],
int  component 
)
svkDcmHeader * GetDcmHeader ( )

Pure getter method: returns header object.

Returns
the header for this svkImageData object

References svkImageData::dcmHeader.

Referenced by svkHSVD::AddDampingFilterRule(), svkVoxelTaggingUtils::AddTagToVoxelData(), svkDataValidator::AreDataCompatible(), svkDataValidator::AreDataOrientationsSame(), svkDataValidator::AreDataOriginsSame(), svkMRSAutoPhase::AutoPhaseExecute(), svkMRSAutoPhase::AutoPhaseSpectrum(), svkMultiCoilPhase::CalculateCenterPhase(), svkDcmSegmentationVolumeReader::CanReadFile(), svkDcmRawDataReader::CanReadFile(), svkDcmMrsVolumeReader::CanReadFile(), svkGEPostageStampReader::CanReadFile(), svkDcmMriVolumeReader::CanReadFile(), svkDcmEnhancedVolumeReader::CanReadFile(), svkBrukerDCMMRSReader::CanReadFile(), svkImageData::CastDataFormat(), svkEPSIReorder::CombineLobes(), svkDcmVolumeReader::ContainsProprietaryContent(), svkImageData::CopyAndFillComponents(), svkVoxelTaggingUtils::CreateVoxelTagData(), svkGEPFileReader::Deidentify(), svkMrsImageData::EstimateDataRange(), svkLCModelCoordReader::ExecuteDataWithInformation(), svkSdbmVolumeReader::ExecuteDataWithInformation(), svkDdfVolumeReader::ExecuteDataWithInformation(), svkPhilipsSReader::ExecuteDataWithInformation(), svkVarianFidReader::ExecuteDataWithInformation(), svkFdfVolumeReader::ExecuteDataWithInformation(), svkIdfVolumeReader::ExecuteDataWithInformation(), svkSiemensRdaReader::ExecuteDataWithInformation(), svkGEPFileReader::ExecuteDataWithInformation(), svkDcmVolumeReader::ExecuteInformation(), svkDcmSegmentationVolumeReader::ExecuteInformation(), svkDdfVolumeReader::ExecuteInformation(), svkGESigna5XReader::ExecuteInformation(), svkDcmRawDataReader::ExtractFiles(), svkImageData::FindMatchingSlice(), svkMRSFirstOrderPhase::FitPhase(), svkMRSZeroOrderPhase::FitPhase(), svkMRSFirstPointPhase::FitPhase(), svkVoxelTaggingUtils::FixPerFrameFunctionalGroupSequence(), svkMrsImageData::GenerateSelectionBox(), svkStatistics::GetAutoAdjustedBinSize(), svkMriImageData::GetCellDataRepresentation(), svkMrsImageData::GetClosestSlice(), svkImageData::GetClosestSlice(), svkDICOMEnhancedMRIWriter::GetDataLength(), svkDICOMMRIWriter::GetDataLength(), svkImageReader2::GetDcmHeader(), svkDataModel::GetDcmHeader(), svkUtils::GetDefaultSecondaryCaptureDirectory(), svkUtils::GetDefaultSecondaryCaptureFilePattern(), svkImageReader2::GetFileSeriesDescription(), svkDcmMriVolumeReader::GetFileType(), svkImageData::GetFirstSlice(), svkHSVD::GetFitSuccessStatus(), svkIdfVolumeWriter::GetHeaderString(), svk4DImageData::GetImage(), svkImageViewer2::GetImageActor(), svkImageData::GetImageCenter(), svkImageData::GetIndexFromPosition(), svkImageData::GetLastSlice(), svkImageWriterFactory::GetNewSeriesFilePattern(), svkMrsImageData::GetNumberOfChannels(), svk4DImageData::GetNumberOfSlices(), svkImageData::GetNumberOfSlices(), svkVoxelTaggingUtils::GetNumberOfTags(), svkEPSIReorder::GetNumSamplesPerLobe(), svkImageData::GetOrientationIndex(), svkDICOMImageWriter::GetPixelRange(), svkDcmEnhancedVolumeReader::GetPixelTransform(), svkImageData::GetPositionFromIndex(), svkDSCRecovery::GetRecovery(), svkQuantifyMetabolites::GetRegionNameVector(), svkDICOMImageWriter::GetScaledPixels(), svkMrsImageData::GetSelectionBoxDimensions(), svkMrsImageData::GetSelectionBoxSpacing(), svkImageData::GetSliceCenter(), svkImageData::GetSliceNormal(), svkImageData::GetSliceOrigin(), svkVoxelTaggingUtils::GetTagName(), svkVoxelTaggingUtils::GetTagValue(), svk4DImageData::GetTlcBrcInUserSelection(), svkMriImageData::GetVolumeIndexForFrame(), svkMrsImageData::GetVolumeIndexSize(), svkApodizationWindow::GetWindowResolution(), svkMrsImageData::HasSelectionBox(), svkGEPostageStampReader::InitDcmHeader(), svkDcmMriVolumeReader::InitDcmHeader(), svkBrukerDCMMRSReader::InitDcmHeader(), svkDcmVolumeReader::InitDcmHeader(), svkGESigna5XReader::InitDcmHeader(), svkGESigna5XReader::InitEnhancedGeneralEquipmentModule(), svkGESigna5XReader::InitEnhancedMRImageModule(), svkDcmVolumeReader::InitFileNames(), svkGESigna5XReader::InitGeneralEquipmentModule(), svkGESigna5XReader::InitGeneralSeriesModule(), svkGESigna5XReader::InitGeneralStudyModule(), svkImageAlgorithmPipeline::InitializeAlgorithmForTag(), svkMrsImageData::InitializeDataArrays(), svkApodizationWindow::InitializeWindow(), svkGESigna5XReader::InitMRAveragesMacro(), svkGESigna5XReader::InitMREchoMacro(), svkGESigna5XReader::InitMRFOVGeometryMacro(), svkGESigna5XReader::InitMRImageAndSpectroscopyInstanceMacro(), svkGESigna5XReader::InitMRImageFrameTypeMacro(), svkGESigna5XReader::InitMRImagingModifierMacro(), svkGESigna5XReader::InitMRModifierMacro(), svkGESigna5XReader::InitMRPulseSequenceModule(), svkGESigna5XReader::InitMRReceiveCoilMacro(), svkGESigna5XReader::InitMRTimingAndRelatedParametersMacro(), svkGESigna5XReader::InitMRTransmitCoilMacro(), svkGESigna5XReader::InitMultiFrameFunctionalGroupsModule(), svkGESigna5XReader::InitPatientModule(), svkGESigna5XReader::InitPerFrameFunctionalGroupMacros(), svkDICOMEnhancedMRIWriter::InitPixelData(), svkGESigna5XReader::InitPixelMeasuresMacro(), svkGESigna5XReader::InitPixelValueTransformationMacro(), svkGESigna5XReader::InitPlaneOrientationMacro(), svkDcmVolumeReader::InitSliceOrder(), svkVoxelTaggingUtils::IsImageVoxelTagData(), svkMrsImageData::IsSliceInSelectionBox(), svkGEPFileMapperUCSFfidcsiDev0::ModifyForPatientEntry(), svkQuantifyMetabolites::ModifyRegion(), svkMRSZeroOrderPhase::PrePhaseSetup(), svkMRSFirstPointPhase::PrePhaseSetup(), svkGEPFileMapperUCSFfidcsiDev0::ReadData(), svkMrsImageData::Redimension(), svkVarianUCSFEPSI2DMapper::RedimensionData(), svkGEPFileMapper::RedimensionModifiedSVData(), svkVarianUCSFEPSI2DMapper::RemoveArrays(), svkImageData::RemoveArrays(), svkHSVD::RemoveH20On(), svkHSVD::RemoveLipidOn(), svkVoxelTaggingUtils::RemoveTagFromVoxelData(), svkGEPFileMapper::ReorderEPSI(), svkVarianUCSFEPSI2DMapper::ReorderEPSIData(), svkAlgoTemplate::RequestData(), svkBurnResearchPixels::RequestData(), svkImageAlgorithmExecuter::RequestData(), svkMrsImageFlip::RequestData(), svkIntegratePeak::RequestData(), svkMrsApodizationFilter::RequestData(), svkDynamicImageMap::RequestData(), svkMrsLinearPhase::RequestData(), svkMrsSingleVoxelSincExtraction::RequestData(), svkMultiCoilPhase::RequestData(), svkDynamicMRIAlgoTemplate::RequestData(), svkMriImageFFT::RequestData(), svkDSCDeltaR2::RequestData(), svkMRSNoise::RequestData(), svkEPSIPhaseCorrect::RequestData(), svkMriZeroFill::RequestData(), svkMetaboliteRatioZScores::RequestData(), svkSincInterpolationFilter::RequestData(), svkMRSKinetics::RequestData(), svkImageThreshold::RequestData(), svkMetaboliteMap::RequestData(), svkMrsZeroFill::RequestData(), svkImageStatistics::RequestData(), svkHSVD::RequestData(), svkMrsImageFFT::RequestDataSpatial(), svkMrsZeroFill::RequestDataSpatial(), svkMrsZeroFill::RequestDataSpectral(), svkMrsImageFFT::RequestDataSpectral(), svkDynamicImageMap::RequestInformation(), svkMrsSingleVoxelSincExtraction::RequestInformation(), svkDynamicMRIAlgoTemplate::RequestInformation(), svkObliqueReslice::RequestInformation(), svkMRSKinetics::RequestInformation(), svkMetaboliteMap::RequestInformation(), svkMRSAutoPhase::RequestInformation(), svkMrsZeroFill::RequestInformation(), svk4DImageData::SetImage(), svkPlotGridView::SetInput(), svkMRSAutoPhase::SetMapSeriesDescription(), svkVoxelTaggingUtils::SetTagName(), svkVoxelTaggingUtils::SetTagValue(), svkObliqueReslice::SetTarget(), svkImageReader2::SetupOutputExtent(), svkImageReader2::SetupOutputInformation(), svkImageReader2::SetupOutputScalarData(), svkPlotGridView::ShowView(), svkMRSAutoPhase::SVKRequestDataPreExec(), svkMriImageData::SyncCellRepresentationToPixelData(), svkMRSAutoPhase::ValidateInput(), svkDICOMEnhancedMRIWriter::Write(), svkDICOMMRIWriter::Write(), svkDdfVolumeWriter::Write(), and svkDICOMMRSWriter::Write().

void GetDcos ( double  x[3][3])
virtual
int GetFirstSlice ( svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION)
virtual
int GetIDFromIndex ( int  indexX,
int  indexY,
int  indexZ 
)

Compute the plotID from the x, y, z index

Parameters
indexXthe x index of the voxel who's id you want
indexYthe y index of the voxel who's id you want
indexYthe z index of the voxel who's id you want
Returns
the id of the plot at (indexX, indexY, indexZ)

References svkImageData::GetNumberOfVoxels().

Referenced by svkMriImageData::GetCenterOfMass(), svkMriImageData::GetImagePixel(), svkDataView::IsTlcBrcWithinData(), svkDataView::ResetTlcBrcForNewOrientation(), and svkMriImageData::SetImagePixel().

void GetImageCenter ( double *  posLPS)
virtual

Compute center of the image data volume

Returns
the L,P,S coordinate of the center of the image

References svkImageData::GetDcmHeader(), svkImageData::GetDcos(), svkDcmHeader::GetIntValue(), svkDcmHeader::GetNumberOfSlices(), svkDcmHeader::GetOrigin(), and svkDcmHeader::GetPixelSpacing().

Referenced by svkImageViewer2::ResetCamera().

void GetIndexFromID ( int  voxelID,
int *  indexX,
int *  indexY,
int *  indexZ 
)

Compute the x, y, z indices from the voxelID.

Parameters
voxelIDthe id of the voxel you wish to know the indecies of
indexXpointer to the integer you wish to set to be the x index of the given ID
indexYpointer to the integer you wish to set to be the y index of the given ID
indexZpointer to the integer you wish to set to be the z index of the given ID

References svkImageData::GetNumberOfVoxels().

Referenced by svk4DImageData::EstimateDataRange(), svkMrsImageData::Get3DVoxelsInSelectionBox(), svk4DImageData::GetArrayFromID(), svkDataView::GetClippingIndexFromTlcBrc(), svkImageData::GetIndexFromID(), svkDSCRecovery::GetRecovery(), svkMrsImageData::GetSelectionBoxMask(), svkDataView::IsTlcBrcWithinData(), and svkDataView::ResetTlcBrcForNewOrientation().

void GetIndexFromID ( int  voxelID,
int *  index 
)

Compute the x, y indices from the voxelID.

Parameters
voxelIDthe id of the voxel you wish to know the indecies of
indexpointer to the integer indices

References svkImageData::GetIndexFromID().

void GetIndexFromPosition ( double  posLPS[3],
int *  index 
)

Compute the row, column, slice index for a given LPS coordinate

Parameters
L
P
S
Returns
the x,y,z index of the voxel at that LPS position. If the position is outside the dataset, the closests voxel will be selected.

Referenced by svk4DImageData::GetTlcBrcInUserSelection(), svkMrsSingleVoxelSincExtraction::RequestData(), and svkObliqueReslice::RequestInformation().

void GetIndexFromPosition ( double  posLPS[3],
double *  index 
)

Compute the row, column, slice index for a given LPS coordinate

Parameters
L
P
S
Returns
the x,y,z index of the voxel at that LPS position. For this version of the function a double index is returned. It is counted from the EDGE not the CENTER of the voxel. For example a return value of 0.5, 0.5, 0.5 would mean half way through the first voxel, aka the origin.

References svkImageData::COLUMN, svkImageData::GetDataBasis(), svkImageData::GetDcmHeader(), svkDcmHeader::GetOrigin(), svkDcmHeader::GetPixelSpacing(), svkImageData::ROW, and svkImageData::SLICE.

int GetLastSlice ( svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION)
virtual
int GetNumberOfSlices ( svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION)
virtual

Determins the number of slices for a given orientation.

Reimplemented in svk4DImageData.

References svkImageData::GetDcmHeader(), svkImageData::GetOrientationIndex(), svkDcmHeader::GetOrientationType(), and svkDcmHeader::UNKNOWN_ORIENTATION.

virtual void GetNumberOfVoxels ( int  numVoxels[3])
pure virtual
int GetOrientationIndex ( svkDcmHeader::Orientation  orientation)
virtual
double * GetPoint ( vtkIdType  ptId)
virtual

Get a point based on the point ID. Since ImageData does not store points, it is calculated.

References dims.

virtual void GetPoint ( vtkIdType  id,
double  x[3] 
)
inlinevirtual
void GetPointCells ( vtkIdType  ptId,
vtkIdList *  cellIds 
)
virtual

NOT YET IMPLEMENTED– empty method

void GetPointGradient ( int  i,
int  j,
int  k,
vtkDataArray *  s,
double  g[3] 
)
virtual

NOT YET IMPLEMENTED– empty method

void GetPositionFromIndex ( int *  index,
double *  posLPS 
)
virtual

Compute LPS coordinate for a given x,y,z index

Parameters
x
y
z
Returns
the L,P,S coordinate of the center of the voxel at that xyz index.

References svkImageData::GetDcmHeader(), svkImageData::GetDcos(), svkDcmHeader::GetOrigin(), and svkDcmHeader::GetPixelSpacing().

Referenced by svkMriImageData::GetCenterOfMass().

svkProvenance * GetProvenance ( )
void GetSliceCenter ( int  slice,
double *  sliceCenter,
svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION 
)
virtual
void GetSliceNormal ( double *  normal,
svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION 
)
virtual
void GetSliceOrigin ( int  slice,
double *  sliceOrigin,
svkDcmHeader::Orientation  sliceOrientation = svkDcmHeader::UNKNOWN_ORIENTATION 
)
virtual

This method will get the origin of a given slice, for a given orientation. Default uses the data's orientation.

References svkImageData::GetDcmHeader(), svkImageData::GetOrientationIndex(), svkDcmHeader::GetOrientationType(), svkImageData::GetSliceNormal(), and svkDcmHeader::UNKNOWN_ORIENTATION.

svkImageData * GetSourceData ( )

Set the source data. This can be used to keep track of what image data object was used to derive this one. It is just for book keeping and is not used in any other way.

References svkImageData::source.

void GetVoxelGradient ( int  i,
int  j,
int  k,
vtkDataArray *  s,
vtkDataArray *  g 
)
virtual

NOT YET IMPLEMENTED– empty method

void PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual

PrintSelf method calls parent class PrintSelf, then prints the dcos.

void RemoveArrays ( svkImageData data)
static
void SetAxisUpdateExtent ( int  axis,
int  min,
int  max 
)
virtual

NOT YET IMPLEMENTED– empty method

void SetDataRange ( double  range[2],
int  component 
)

Setter of the data range variable.

Referenced by svkIdfVolumeReader::ExecuteDataWithInformation(), and svk4DImageData::UpdateRange().

void SetDcmHeader ( svkDcmHeader dcmHeader)

Pure setter method: this->x = x.

Parameters
dcmHeaderthe header you wish to set for this svkImageData object

References svkImageData::dcmHeader.

Referenced by svkMriImageData::GetCellDataRepresentation().

void SetDcos ( double  x[3][3])
virtual
void SetProvenance ( svkProvenance provenance)

Pure setter method: this->x = x.

Parameters
provenancethe provenance object you wish to set for this svkImageData object

References svkImageData::provenance.

void SetSourceData ( svkImageData source)

Set the source data. This can be used to keep track of what image data object was used to derive this one. It is just for book keeping and is not used in any other way.

References svkImageData::source.

Referenced by svkMriImageData::GetCellDataRepresentation().

void ShallowCopy ( vtkDataObject *  src)
virtual

Calls two-argument version of the method. We want to make sure we retain the polymorphic properties of this method so we can't use a default argument otherwise the method would be hidden to the base class.

References svkDcmHeader::UNDEFINED.

Referenced by svkImageData::CopyVtkImage(), svkDataModel::LoadFile(), svkGEPFileMapper::ReorderEPSI(), svkMriImageFFT::RequestData(), svkSincInterpolationFilter::RequestData(), and svkMrsZeroFill::RequestDataSpatial().

void ShallowCopy ( vtkDataObject *  src,
svkDcmHeader::DcmPixelDataFormat  castToFormat 
)
virtual

First calls vtkImageData's shallow copy, then also copies the dcos, but does NOT copy the DICOM header.

void SyncVTKImageDataToDcmHeader ( )
void UpdateRange ( int  component)
protectedvirtual

Reimplemented in svk4DImageData.

Referenced by svkImageData::GetDataRange().

void UpdateSvkParams ( )
protectedvirtual

Updates svk parameters.

Referenced by svkImageData::GetDataRange().

vtkGetStringMacro ( SourceFileName  )
vtkSetStringMacro ( SourceFileName  )
vtkTypeMacro ( svkImageData  ,
vtkImageData   
)
bool WasModified ( )
protected
void ZeroCopy ( vtkImageData *  src,
svkDcmHeader::DcmPixelDataFormat  castToFormat = svkDcmHeader::UNDEFINED 
)
virtual

First calls CopyStructure, then also copies the dcos, and DICOM header.

References svkImageData::CopyAndFillComponents().

Referenced by svkImageCopy::RequestData().

Member Data Documentation

svkDcmHeader* dcmHeader
protected
svkProvenance* provenance
protected
double range[3][2]
protected

Range needs to be able to accomodate real, imaginary, and magnitude components.

Referenced by svkMriImageData::GetAutoWindowLevel(), and svkImageData::svkImageData().

svkImageData* source
protected
char* SourceFileName
protected

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