PlusLib
2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
|
Algorithm for computing the center of in-plane rotation of ultrasound images of a calibration phantom. More...
#include <src/PlusCalibration/vtkCenterOfRotationCalibAlgo/vtkPlusCenterOfRotationCalibAlgo.h>
Public Types | |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual PlusStatus | GenerateReport (vtkPlusHTMLGenerator *htmlReport) |
virtual PlusStatus | GetCenterOfRotationPx (double centerOfRotationPx[2]) |
virtual const char * | GetClassName () |
virtual PlusStatus | GetError (double &mean, double &stdev) |
virtual vtkTable * | GetReportTable () |
virtual int | IsA (const char *type) |
virtual void | PrintSelf (ostream &os, vtkIndent indent) VTK_OVERRIDE |
virtual void | SetInputs (vtkIGSIOTrackedFrameList *trackedFrameList, std::vector< int > &indices, double spacing[2]) |
Static Public Member Functions | |
static PlusStatus | GenerateCenterOfRotationReport (int numberOfNWirePatterns, vtkPlusHTMLGenerator *htmlReport, vtkTable *reportTable, double centerOfRotationPx[2]) |
static int | IsTypeOf (const char *type) |
static vtkPlusCenterOfRotationCalibAlgo * | New () |
static vtkPlusCenterOfRotationCalibAlgo * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
PlusStatus | AddNewColumnToReportTable (const char *columnName) |
virtual PlusStatus | ConstructLinearEquationForCalibration (std::vector< vnl_vector< double > > &aMatrix, std::vector< double > &bVector) |
int | GetNumberOfNWirePatterns () |
virtual void | SetCenterOfRotationPx (int, int) |
void | SetCenterOfRotationPx (int [2]) |
virtual void | SetReportTable (vtkTable *) |
virtual void | SetSpacing (double, double) |
void | SetSpacing (double [2]) |
virtual void | SetTrackedFrameList (vtkIGSIOTrackedFrameList *) |
virtual void | SetTrackedFrameListIndices (std::vector< int > &indices) |
virtual PlusStatus | Update () |
virtual PlusStatus | UpdateReportTable () |
vtkPlusCenterOfRotationCalibAlgo () | |
virtual | ~vtkPlusCenterOfRotationCalibAlgo () |
Protected Attributes | |
double | CenterOfRotationPx [2] |
double | ErrorMean |
double | ErrorStdev |
vtkTable * | ReportTable |
double | Spacing [2] |
vtkIGSIOTrackedFrameList * | TrackedFrameList |
std::vector< int > | TrackedFrameListIndices |
vtkTimeStamp | UpdateTime |
Algorithm for computing the center of in-plane rotation of ultrasound images of a calibration phantom.
The algorithm is used for computing the rotation axis position of brachytherapy steppers. The rotation is assumed to be in the image plane (the rotation axis is assumed to be perpendicular to the image plane). The images shall be taken of a calibration phantom and the frames shall be segmented (the fiducial point coordinates shall be computed) before calling this algorithm.
Asumptions: Distance between a non-moving wire position (denoted as S) and the rotation center of the optical encoder (denoted as O) remains constant during rotation: || Si - O || = || Sj - O || Model: pow(Sxi - Ox, 2) + pow(Syi - Oy, 2) = pow(Sxj - Ox, 2) + pow(Syj - Oy, 2) where i != j Unknowns: Ox, Oy = center of rotation in pixel Linear system: Ax = B [ (Sxi - Sxj) (Syi - Syj) ] * [ Ox ] = [ (0.5*( Sxi*Sxi + Syi*Syi - Sxj*Sxj - Syj*Syj )) ] [ Oy ]
Definition at line 51 of file vtkPlusCenterOfRotationCalibAlgo.h.
typedef vtkObject vtkPlusCenterOfRotationCalibAlgo::Superclass |
Definition at line 56 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Definition at line 27 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protectedvirtual |
Definition at line 38 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protected |
Add new column to the report table
Definition at line 506 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protectedvirtual |
Construct linear equation for center of rotation calibration
Definition at line 228 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
static |
Add generated html report from center of rotation calibration to the existing html report
numberOfNWirePatterns | Number of N-wire structure used |
htmlReport | Has to be defined by the caller function |
plotter | Has to be defined by the caller function |
reportTable | Computed output |
centerOfRotationPx | Computed output |
Definition at line 551 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
virtual |
Add generated html report from center of rotation calibration to the existing html report
Definition at line 535 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
virtual |
Get the computed center of rotation position in pixel
Definition at line 86 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
virtual |
|
virtual |
Get the center of rotation calibration error
Definition at line 99 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protected |
Get the number of N-wire patterns used in the tracked frame list
Definition at line 172 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
virtual |
Get the report table that is used for storing algorithm results
|
virtual |
|
static |
|
static |
|
virtual |
Definition at line 45 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
static |
|
protected |
Set the rotation center in pixels.
|
virtual |
Set all required algorithm inputs.
trackedFrameList | Tracked frames with segmentation results |
indices | Tracked frame indices that the algoritm should use during calibration |
spacing | Image spacing (mm/pixel) |
Definition at line 69 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protectedvirtual |
Report table used for storing algorithm results
|
protected |
|
protectedvirtual |
Set the input image spacing (mm/pixel)
|
protectedvirtual |
Set the input tracked frame list
|
protectedvirtual |
Set tracked frame indices used for calibration
Definition at line 78 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protectedvirtual |
Bring this algorithm's outputs up-to-date.
Definition at line 112 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protectedvirtual |
Update center of rotation calibration error report table
Definition at line 348 of file vtkPlusCenterOfRotationCalibAlgo.cxx.
|
protected |
Stores the center of rotation in px space
Definition at line 124 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Calibration error mean
Definition at line 142 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Calibration error standard deviation
Definition at line 145 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Table used for storing algorithm results
Definition at line 139 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Image spacing (mm/pixel)
Definition at line 130 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Tracked frames used for calibration with segmentation results
Definition at line 133 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
Tracked frame indices used for calibration
Definition at line 136 of file vtkPlusCenterOfRotationCalibAlgo.h.
|
protected |
When the results were computed. The result is recomputed only if the inputs changed more recently than UpdateTime.
Definition at line 148 of file vtkPlusCenterOfRotationCalibAlgo.h.