vtkTransRectalFiducialCalibrationAlgo Class Reference

#include <vtkTransRectalFiducialCalibrationAlgo.h>

Inheritance diagram for vtkTransRectalFiducialCalibrationAlgo:
vtkObject

List of all members.

Public Types

typedef itk::Point< double, 3 > PointType

Public Member Functions

bool CalibrateFromImage (const TRProstateBiopsyCalibrationFromImageInput &input)
void GetAxisCenterpoints (vtkPoints *points, int i)
vtkImageDataGetCalibMarkerPreProcOutput (int i)
vtkMatrix4x4 * GetCalibMarkerPreProcOutputIJKToRAS ()
const
TRProstateBiopsyCalibrationData
GetCalibrationData ()
bool GetMarkerFound (int i)
double * GetMarkerPositions (int i)
void PrintSelf (ostream &os, vtkIndent indent)
void SetEnableMarkerCenterpointAdjustment (bool enable)
 vtkTypeRevisionMacro (vtkTransRectalFiducialCalibrationAlgo, vtkObject)

Static Public Member Functions

static bool FindTargetingParams (vtkProstateNavTargetDescriptor *target, const TRProstateBiopsyCalibrationData &calibrationData, NeedleDescriptorStruct *needle, TRProstateBiopsyTargetingParams *targetingParams)
 Calculations to find the targeting parameters (point -> rotation & deepth).
static
vtkTransRectalFiducialCalibrationAlgo
New ()

Protected Member Functions

bool CalculateCircleCenter (vtkImageData *inData, unsigned int *tempStorage, int tempStorageSize, double nThersholdVal, double nRadius, double &gx, double &gy, int nVotedNeeded, bool lDebug)
 Calculates the circle center. Assumes spacingX == spacingY (for the circle) Assumes 2D planeImageData.
bool CalculateCircleCenterMean (vtkImageData *inData, double nRadius, double threshold, double &gx, double &gy)
void CropWithCylinder (vtkImageData *output, vtkImageData *input, const double linePoint_RAS[3], const double normal_RAS[3], vtkMatrix4x4 *ijkToRAS, double radiusMm)
bool DoubleEqual (double val1, double val2)
bool FindProbe (const double P1[3], const double P2[3], double v1[3], double v2[3], double I1[3], double I2[3], double &axesAngleDegrees, double &axesDistance)
 Calculate probe position from fiducial pairs.
void Linefinder (double P_[3], double v_[3], std::vector< itk::Point< double, 3 > > CoordVector)
 Find the best line fitting CoordVector.
void RemoveOutliners (double P_[3], double v_[3], const double def1[3], const double def2[3], std::vector< PointType > &CoordinatesVector)
 Remove outlaying points.
void SegmentAxis (const double initPos1[3], const double initPos2[3], vtkMatrix4x4 *volumeIJKToRASMatrix, vtkImageData *calibVol, double thresh1, double thresh2, const double fidDimsMm[3], double radius, double initialAngle, double P1[3], double v1[3], double finalPos1[3], double finalPos2[3], bool &found1, bool &found2, vtkImageData *img1, vtkImageData *img2, std::vector< PointType > *CoordinatesVectorAxis)
bool SegmentCircle (double markerCenterGuessRas[3], const double normalRas[3], double thresh, const double fidDimsMm[3], double radius, vtkMatrix4x4 *ijkToRAS, vtkImageData *calibVol, std::vector< PointType > &CoordinatesVector, vtkImageData *preprocOutput=NULL)
 vtkTransRectalFiducialCalibrationAlgo ()
virtual ~vtkTransRectalFiducialCalibrationAlgo ()

Static Protected Member Functions

static bool RotatePoint (double H_before[3], double rotation_rad, double alpha_rad, double mainaxis[3], double I[3], double H_after[3])
 Internal function used by FindTargetingParams.

Protected Attributes

std::vector< vtkImageData * > CalibMarkerPreProcOutput
vtkMatrix4x4 * CalibMarkerPreProcOutputIJKToRAS
TRProstateBiopsyCalibrationData CalibrationData
std::vector< PointTypeCoordinatesVectorAxis1
std::vector< PointTypeCoordinatesVectorAxis2
bool EnableMarkerCenterpointAdjustment
bool MarkerFound [CALIB_MARKER_COUNT]
double MarkerPositions [CALIB_MARKER_COUNT][3]

Private Member Functions

void operator= (const vtkTransRectalFiducialCalibrationAlgo &)
 vtkTransRectalFiducialCalibrationAlgo (const vtkTransRectalFiducialCalibrationAlgo &)

Member Typedef Documentation

typedef itk::Point<double, 3> vtkTransRectalFiducialCalibrationAlgo::PointType

Constructor & Destructor Documentation

vtkTransRectalFiducialCalibrationAlgo::vtkTransRectalFiducialCalibrationAlgo (  )  [protected]
vtkTransRectalFiducialCalibrationAlgo::~vtkTransRectalFiducialCalibrationAlgo (  )  [protected, virtual]
vtkTransRectalFiducialCalibrationAlgo::vtkTransRectalFiducialCalibrationAlgo ( const vtkTransRectalFiducialCalibrationAlgo  )  [private]

Member Function Documentation

bool vtkTransRectalFiducialCalibrationAlgo::CalculateCircleCenter ( vtkImageData inData,
unsigned int tempStorage,
int  tempStorageSize,
double  nThersholdVal,
double  nRadius,
double &  gx,
double &  gy,
int  nVotedNeeded,
bool  lDebug 
) [protected]

Calculates the circle center. Assumes spacingX == spacingY (for the circle) Assumes 2D planeImageData.

Todo:
Make all calculations floating point!

References autoSlicerTracto2regions::d, DoubleEqual(), and max.

Referenced by SegmentCircle().

bool vtkTransRectalFiducialCalibrationAlgo::CalculateCircleCenterMean ( vtkImageData inData,
double  nRadius,
double  threshold,
double &  gx,
double &  gy 
) [protected]

References double(), and DoubleEqual().

Referenced by SegmentCircle().

bool vtkTransRectalFiducialCalibrationAlgo::CalibrateFromImage ( const TRProstateBiopsyCalibrationFromImageInput input  ) 
void vtkTransRectalFiducialCalibrationAlgo::CropWithCylinder ( vtkImageData output,
vtkImageData input,
const double  linePoint_RAS[3],
const double  normal_RAS[3],
vtkMatrix4x4 *  ijkToRAS,
double  radiusMm 
) [protected]

References MAX_RADIUS_TOLERANCE.

Referenced by SegmentCircle().

bool vtkTransRectalFiducialCalibrationAlgo::DoubleEqual ( double  val1,
double  val2 
) [protected]
bool vtkTransRectalFiducialCalibrationAlgo::FindProbe ( const double  P1[3],
const double  P2[3],
double  v1[3],
double  v2[3],
double  I1[3],
double  I2[3],
double &  axesAngleDegrees,
double &  axesDistance 
) [protected]

Calculate probe position from fiducial pairs.

Referenced by CalibrateFromImage().

bool vtkTransRectalFiducialCalibrationAlgo::FindTargetingParams ( vtkProstateNavTargetDescriptor target,
const TRProstateBiopsyCalibrationData calibrationData,
NeedleDescriptorStruct needle,
TRProstateBiopsyTargetingParams targetingParams 
) [static]
void vtkTransRectalFiducialCalibrationAlgo::GetAxisCenterpoints ( vtkPoints *  points,
int  i 
)
vtkImageData * vtkTransRectalFiducialCalibrationAlgo::GetCalibMarkerPreProcOutput ( int  i  ) 
vtkMatrix4x4 * vtkTransRectalFiducialCalibrationAlgo::GetCalibMarkerPreProcOutputIJKToRAS (  ) 
const TRProstateBiopsyCalibrationData& vtkTransRectalFiducialCalibrationAlgo::GetCalibrationData (  )  [inline]
bool vtkTransRectalFiducialCalibrationAlgo::GetMarkerFound ( int  i  ) 

References MarkerFound.

double * vtkTransRectalFiducialCalibrationAlgo::GetMarkerPositions ( int  i  ) 

References MarkerPositions.

void vtkTransRectalFiducialCalibrationAlgo::Linefinder ( double  P_[3],
double  v_[3],
std::vector< itk::Point< double, 3 > >  CoordVector 
) [protected]

Find the best line fitting CoordVector.

References k, and P.

Referenced by RemoveOutliners().

static vtkTransRectalFiducialCalibrationAlgo* vtkTransRectalFiducialCalibrationAlgo::New (  )  [static]
void vtkTransRectalFiducialCalibrationAlgo::operator= ( const vtkTransRectalFiducialCalibrationAlgo  )  [private]
void vtkTransRectalFiducialCalibrationAlgo::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
void vtkTransRectalFiducialCalibrationAlgo::RemoveOutliners ( double  P_[3],
double  v_[3],
const double  def1[3],
const double  def2[3],
std::vector< PointType > &  CoordinatesVector 
) [protected]

Remove outlaying points.

References Linefinder(), ProstateNavMath::PointDistanceFromLineM(), and remove_if().

Referenced by SegmentAxis().

bool vtkTransRectalFiducialCalibrationAlgo::RotatePoint ( double  H_before[3],
double  rotation_rad,
double  alpha_rad,
double  mainaxis[3],
double  I[3],
double  H_after[3] 
) [static, protected]

Internal function used by FindTargetingParams.

Referenced by FindTargetingParams().

void vtkTransRectalFiducialCalibrationAlgo::SegmentAxis ( const double  initPos1[3],
const double  initPos2[3],
vtkMatrix4x4 *  volumeIJKToRASMatrix,
vtkImageData calibVol,
double  thresh1,
double  thresh2,
const double  fidDimsMm[3],
double  radius,
double  initialAngle,
double  P1[3],
double  v1[3],
double  finalPos1[3],
double  finalPos2[3],
bool found1,
bool found2,
vtkImageData img1,
vtkImageData img2,
std::vector< PointType > *  CoordinatesVectorAxis 
) [protected]

Todo:
Show resliced object in a window, like ITK-SNAP

References RemoveOutliners(), and SegmentCircle().

Referenced by CalibrateFromImage().

bool vtkTransRectalFiducialCalibrationAlgo::SegmentCircle ( double  markerCenterGuessRas[3],
const double  normalRas[3],
double  thresh,
const double  fidDimsMm[3],
double  radius,
vtkMatrix4x4 *  ijkToRAS,
vtkImageData calibVol,
std::vector< PointType > &  CoordinatesVector,
vtkImageData preprocOutput = NULL 
) [protected]
void vtkTransRectalFiducialCalibrationAlgo::SetEnableMarkerCenterpointAdjustment ( bool  enable  ) 
vtkTransRectalFiducialCalibrationAlgo::vtkTypeRevisionMacro ( vtkTransRectalFiducialCalibrationAlgo  ,
vtkObject   
)

Member Data Documentation


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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1