#include <vtkTransRectalFiducialCalibrationAlgo.h>
Public Types | |
| typedef itk::Point< double, 3 > | PointType |
Public Member Functions | |
| bool | CalibrateFromImage (const TRProstateBiopsyCalibrationFromImageInput &input) |
| void | GetAxisCenterpoints (vtkPoints *points, int i) |
| vtkImageData * | GetCalibMarkerPreProcOutput (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< PointType > | CoordinatesVectorAxis1 |
| std::vector< PointType > | CoordinatesVectorAxis2 |
| bool | EnableMarkerCenterpointAdjustment |
| bool | MarkerFound [CALIB_MARKER_COUNT] |
| double | MarkerPositions [CALIB_MARKER_COUNT][3] |
Private Member Functions | |
| void | operator= (const vtkTransRectalFiducialCalibrationAlgo &) |
| vtkTransRectalFiducialCalibrationAlgo (const vtkTransRectalFiducialCalibrationAlgo &) | |
| typedef itk::Point<double, 3> vtkTransRectalFiducialCalibrationAlgo::PointType |
| vtkTransRectalFiducialCalibrationAlgo::vtkTransRectalFiducialCalibrationAlgo | ( | ) | [protected] |
| vtkTransRectalFiducialCalibrationAlgo::~vtkTransRectalFiducialCalibrationAlgo | ( | ) | [protected, virtual] |
References CALIB_MARKER_COUNT, CalibMarkerPreProcOutput, and CalibMarkerPreProcOutputIJKToRAS.
| vtkTransRectalFiducialCalibrationAlgo::vtkTransRectalFiducialCalibrationAlgo | ( | const vtkTransRectalFiducialCalibrationAlgo & | ) | [private] |
| 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.
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 | ) |
References TRProstateBiopsyCalibrationData::AxesAngleDegrees, TRProstateBiopsyCalibrationData::AxesDistance, CALIB_MARKER_COUNT, CalibMarkerPreProcOutput, CalibMarkerPreProcOutputIJKToRAS, CalibrationData, TRProstateBiopsyCalibrationData::CalibrationValid, CoordinatesVectorAxis1, CoordinatesVectorAxis2, FindProbe(), TRProstateBiopsyCalibrationFromImageInput::FoR, TRProstateBiopsyCalibrationData::FoR, TRProstateBiopsyCalibrationData::I1, TRProstateBiopsyCalibrationData::I2, TRProstateBiopsyCalibrationFromImageInput::MarkerDimensionsMm, MarkerFound, TRProstateBiopsyCalibrationFromImageInput::MarkerInitialPositions, TRProstateBiopsyCalibrationFromImageInput::MarkerRadiusMm, TRProstateBiopsyCalibrationFromImageInput::MarkerSegmentationThreshold, TRProstateBiopsyCalibrationFromImageInput::RobotInitialAngle, TRProstateBiopsyCalibrationData::RobotRegistrationAngleDegrees, SegmentAxis(), TRProstateBiopsyCalibrationData::v1, TRProstateBiopsyCalibrationData::v2, TRProstateBiopsyCalibrationFromImageInput::VolumeIJKToRASMatrix, and TRProstateBiopsyCalibrationFromImageInput::VolumeImageData.
| 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] |
References result.
Referenced by CalculateCircleCenter(), and CalculateCircleCenterMean().
| 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] |
Calculations to find the targeting parameters (point -> rotation & deepth).
References TRProstateBiopsyCalibrationData::AxesAngleDegrees, TRProstateBiopsyTargetingParams::AxisRotation, TRProstateBiopsyCalibrationData::CalibrationValid, zf::Cross(), TRProstateBiopsyTargetingParams::DepthCM, NeedleDescriptorStruct::GetTargetCenter(), TRProstateBiopsyTargetingParams::HingePosition, TRProstateBiopsyCalibrationData::I1, TRProstateBiopsyTargetingParams::IsOutsideReach, NeedleDescriptorStruct::mLength, TRProstateBiopsyTargetingParams::NeedleAngle, TRProstateBiopsyCalibrationData::RobotRegistrationAngleDegrees, RotatePoint(), TRProstateBiopsyTargetingParams::TargetingParametersValid, TRProstateBiopsyCalibrationData::v1, and TRProstateBiopsyCalibrationData::v2.
Referenced by vtkMRMLTransRectalProstateRobotNode::GetNeedleDirectionAtTarget(), vtkMRMLTransRectalProstateRobotNode::GetTargetInfoText(), and vtkMRMLTransRectalProstateRobotNode::UpdateRobotModelNeedle().
| void vtkTransRectalFiducialCalibrationAlgo::GetAxisCenterpoints | ( | vtkPoints * | points, | |
| int | i | |||
| ) |
References CoordinatesVectorAxis1, and CoordinatesVectorAxis2.
| vtkImageData * vtkTransRectalFiducialCalibrationAlgo::GetCalibMarkerPreProcOutput | ( | int | i | ) |
References CalibMarkerPreProcOutput.
| vtkMatrix4x4 * vtkTransRectalFiducialCalibrationAlgo::GetCalibMarkerPreProcOutputIJKToRAS | ( | ) |
References CalibMarkerPreProcOutputIJKToRAS.
| const TRProstateBiopsyCalibrationData& vtkTransRectalFiducialCalibrationAlgo::GetCalibrationData | ( | ) | [inline] |
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] |
| static vtkTransRectalFiducialCalibrationAlgo* vtkTransRectalFiducialCalibrationAlgo::New | ( | ) | [static] |
Referenced by SegmentCircle(), and vtkTransRectalFiducialCalibrationAlgo().
| 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] |
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] |
References CalculateCircleCenter(), CalculateCircleCenterMean(), CropWithCylinder(), zf::Cross(), DEBUG_IMAGE_PATH, EnableMarkerCenterpointAdjustment, len, and New().
Referenced by SegmentAxis().
| void vtkTransRectalFiducialCalibrationAlgo::SetEnableMarkerCenterpointAdjustment | ( | bool | enable | ) |
References EnableMarkerCenterpointAdjustment.
| vtkTransRectalFiducialCalibrationAlgo::vtkTypeRevisionMacro | ( | vtkTransRectalFiducialCalibrationAlgo | , | |
| vtkObject | ||||
| ) |
std::vector<vtkImageData*> vtkTransRectalFiducialCalibrationAlgo::CalibMarkerPreProcOutput [protected] |
vtkMatrix4x4* vtkTransRectalFiducialCalibrationAlgo::CalibMarkerPreProcOutputIJKToRAS [protected] |
Referenced by CalibrateFromImage(), and vtkTransRectalFiducialCalibrationAlgo().
std::vector<PointType> vtkTransRectalFiducialCalibrationAlgo::CoordinatesVectorAxis1 [protected] |
Referenced by CalibrateFromImage(), and GetAxisCenterpoints().
std::vector<PointType> vtkTransRectalFiducialCalibrationAlgo::CoordinatesVectorAxis2 [protected] |
Referenced by CalibrateFromImage(), and GetAxisCenterpoints().
Referenced by SegmentCircle(), SetEnableMarkerCenterpointAdjustment(), and vtkTransRectalFiducialCalibrationAlgo().
Referenced by CalibrateFromImage(), GetMarkerFound(), and vtkTransRectalFiducialCalibrationAlgo().
double vtkTransRectalFiducialCalibrationAlgo::MarkerPositions[CALIB_MARKER_COUNT][3] [protected] |
Referenced by GetMarkerPositions(), and vtkTransRectalFiducialCalibrationAlgo().
1.6.1