Locate3D Overview: Difference between revisions

From Software Product Documentation
Jump to navigation Jump to search
Line 134: Line 134:
<h4><span id="Locate3DWidget01"></span>[[Locate3D: X-ray Windows|X-ray Windows]]</h4>
<h4><span id="Locate3DWidget01"></span>[[Locate3D: X-ray Windows|X-ray Windows]]</h4>
<h4><span id="Locate3DWidget01"></span>[[Locate3D: Settings|Settings]]</h4>
<h4><span id="Locate3DWidget01"></span>[[Locate3D: Settings|Settings]]</h4>
{| class="mw-collapsible mw-collapsed wikitable" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DSX Configuration
|-
|
[[Image:L3D_DSXConfigurationWidget2.png|right]]
;Subject
: This field is automatically populated with the ID of the subject when you load a subject file.
;Session
: This drop down menu is automatically populated with all of the sessions available for the current subject.
;Configuration
: This drop down menu is automatically populated with all of the configurations available for the current session.
;Trial
: This drop down menu is automatically populated with all of the trials available for the current configuration.
;Object
: This list is automatically populated with all of the objects in the current trial. When an object is selected, its POIs are displayed in the <i>Points of Interest</i> widget.
|}
{| class="mw-collapsible mw-collapsed wikitable" id="Points_of_Interest_Widget" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Points of Interest
|-
|
Points of interest (POIs) are features of an object that you want to track in X-ray motion trials. They are most commonly used for radiopaque beads implanted in an object whose motion you want to measure. They are distinguished from landmarks, which are object features whose locations you want to calculate once the object pose is known. A common type of landmark is ligament attachment sites. Thus, POIs are used to determine the pose of an object and landmarks are used to calculate locations dependent on the pose.
The recommended procedure for adding POIs to an object is to use xManager to create them and specify their names, radii, and colors (for display in the GUI). Then use Surface3D to specify their XYZ locations in the image data (usually CT). It is important that each POI have a correctly specified radius so that Locate3D's circle-finding algorithm can estimate its size in the X-ray images.
[[Image:L3D_PointsOfInterestWidget.png]]
{| class="wikitable" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Propagate Range
|-
|
The ''Propagate Range'' slider lets you specify the range of frames over which the ''Propagate POIs'' command (in the ''Tools'' menu) operates. Once you have digitized a POI in one or more frames of a trial, the ''Propagate POIs'' command uses the spline through the poses (shown in the graphs) to attempt to digitize the POI in all frames in this range that do not already have a pose.
|}
{| class="wikitable" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POIs
|-
|
There are six columns in the POI table:
;Name
: the name of the POI, which is used to identify the POI in the X-ray windows and in all 2D and 3D coordinate files. It can be changed by double clicking on the cell and typing in a new name.
;Pose
: a checkbox which is checked when the POI's 3D location is defined for the current frame. Deselecting it deletes its location for the current frame.
;Visibility
: toggles the visibility of the POI in the X-ray windows. It does not affect the presence or absence of locations in the pose map.
;Graph
: toggles the visibility of the POI in the ''POI Graphs'' Widget.
;Trail
: toggles the visibility of the POI's entire pose map in the X-ray windows. 
;Color
: controls the color of the POI in both the X-ray windows and the POI Graphs Widget. Double clicking on the color cell opens a ''Select Color'' dialogue which allows you to change the color.
|}
|}
{| class="mw-collapsible mw-collapsed wikitable" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POI Parameters
|-
|
This widget contains the parameters that control the digitization of POIs in the X-ray images. When you are digitizing POIs in the images, there are two methods of determining the XY coordinates in the 2D images, which are then used to calculate the 3D position in the X-ray lab frame. The recommended method is to left-click on any portion of the POI in the image and let Locate3D calculate the weighted center of pixels representing the POI. This process is described in detail in [[Locate3D_Overview#Digitizing_POIs|Digitizing POIs]], and is governed by the parameters listed below. For cases in which this process does not correctly locate the POI center (e.g., non-circular POIs), you can use Ctrl-left-click to specify the point. In this case Locate3D will use the exact XY coordinates of where you clicked as the 2D location of the POI in that view.
[[Image:L3D_POIParametersWidget.png|right]]
;POI Scale
: used to calculate the expected radius, in pixels, of the POI in the X-ray images. The expected radius is the physical size of the POI multiplied by the scale factor, divided by the pixel size. The scale factor should increase with the distance between the POI and the image plane.
;Click Search Factor
: used when manually digitizing POIs in the X-ray images. If you click at point X,Y in an image, a region of the image around this point is searched for the best location of a grayscale "blob". This region is a square centered at X,Y with sides equal to two times the expected radius of the POI times the ''Click Search Factor''. This factor should be set small enough so that the search region includes only the POI you are currently digitizing.
;Propagation Search Factor
: used when propagating POIs in the X-ray images. In order to propagate a POI with coordinates X,Y in one frame to the next frame, a region of the next frame is searched for the best location of a grayscale "blob". This region is a square centered at X,Y with sides equal to two times the expected radius of the POI times the propagation search factor. This factor should be set large enough so that the search region captures the movement of the POI from one frame to the next, but small enough so that it does not include other POIs.
;Centroid Threshold
: the relative threshold for identifying pixels that belong to the POI. Once a grayscale region of an X-ray image has been identified as a POI, its centroid is calculated by a weighted average of all the pixels that have an intensity value greater than this percentage (0.0 to 1.0) of the maximum intensity.
;Edge Threshold
: the relative threshold for identifying suitable POIs. For a grayscale region in an X-ray image to be considered a POI, the average edge value within the region must be at least this percentage (0.0 to 1.0) of the maximum edge value.
;Pose Map Cutoff Frequency
: the low-pass cut-off frequency for smoothing the cubic splines in the POI pose maps. Smoothing can be turned off by using a value of 0.0 or less.
|}
{| class="mw-collapsible mw-collapsed wikitable" id="POI_Graphs" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POI Graphs
|-
|
[[Image:L3D_GraphsFull.png]]
The ''POI Graphs'' widget displays graphs of the X, Y, and Z coordinates of the selected POIs for the current trial.
As the cursor is moved around the graph a crosshair shows the current coordinates. If the cursor is close enough to one of the data points for a POI it will snap to it and display that point's coordinates in the POI's color. To move the view of a graph in the Y direction, press the left mouse button and drag the cursor up or down. The mouse wheel can also be used to zoom the graph in the Y direction. Press the ''R'' key to reset the graph to the default view. The X axis of the graphs cannot be changed.
Data points cannot be added or moved via the graphs, but they can be deleted. To select one or more points, press the ''Ctrl'' key and then box-select them (hold the left mouse button down while sweeping the diagonal of a box with the cursor). Press the ''Delete'' key to delete the points. Press the ''Esc'' key to deselect them.
|}
{| class="mw-collapsible mw-collapsed wikitable" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X-ray Windows
|-
|
[[Image:L3D_2DViewer.png|800px]]
The X-ray windows display the X-rays of each view, as well as POIs, POI trails, reference frames, and landmarks. The <i>Points of Interest</i> widget lets you choose which POIs and POI trails to display on the X-rays. The <i>View</i> menu has commands for toggling the display of the reference frame and landmarks of the current object, and the POIs of all of the other objects.
The following mouse and keyboard commands can be used in the X-ray windows:
:<b>Left mouse key</b>: digitize POI (weighted center).
:<b>Ctrl-Left mouse key</b>: digitize POI (exact coordinates).
:<b>Esc</b>: cancel POI digitization.
:<b>Alt</b>: show weighted center as calculated from current cursor position (prospective position of current POI).
:<b>PgUp/PgDn</b>: moves to the previous/next reporting time.
:<b>Home/End</b>: moves to the first/last reporting time.
:The <b>mouse wheel</b> zooms the X-ray image in and out.
:<b>Arrow</b> keys translate the X-ray image in image plane.
:Press and hold the <b>middle mouse button</b> to pan the X-ray image within the window.
:<b>R</b> resets the position of the X-ray image in the window.
:Press and hold the <b>left mouse button</b> to change the X-ray image contrast (move cursor left/right) and brightness (move cursor up/down).
:<b>Shift-R</b> resets the image brightness and contrast.
:<b>I</b> toggles the display of on-screen image info.
:<b>H</b> toggles the display of on-screen help text.
|}
{| class="mw-collapsible mw-collapsed wikitable" width="80%"
! style="text-align:left;" | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Settings
|-
|
[[Image:L3D_Settings.png|right]]
;Euler
: the order of Euler rotations in the body pose maps. XYZ is the default, but in some situations it may be helpful to change the order to avoid gimbal lock.
;Color Theme
: you can choose between a light or a dark color theme for the GUI.
|}

Revision as of 16:17, 18 January 2021

Language:  English  • français • italiano • português • español 

Locate3D tracks radiopaque beads in X-ray trials. It is most often used to track objects (e.g., bones and implants) with implanted beads. If the object contains three or more beads in fixed locations, and these 3D locations are known relative to the object's CT coordinate system, then the beads' 2D locations in the X-ray images can be used to calculate the object's 3D pose in the X-ray lab frame. Locate3D is thus similar to X4D, except that it uses multiple beads to determine the pose of an object, instead of the contours of the object itself. Locate3D requires that the configuration of the X-ray equipment has been calculated (with CalibrateDSX), and that the locations of the beads in the object's local frame have been determined (with Surface3D).

Tutorials

How To: Digitize Points of Interest

How To: Track Objects Using Points of Interest

Menus

File Menu

Open Subject... (Ctrl + O)
This command loads a subject file.
Save Subject (Ctrl + S)
This command saves the currently loaded subject to its existing subject file.
Save Subject As...
This command saves the currently loaded subject to a new subject file.
Save POI Locations...
This command saves three text files containing the coordinates of the current object’s POIs. The files are as follows:
  1. one with the 3D coordinates in the X-ray reference frame of all POIs for all frames,
  2. one for the first view with the 2D POI coordinates in the image frame of the view, and
  3. one for the second view with the 2D POI coordinates in the image frame of the view.
If a name for any of these files is already specified in the subject file, it is used to write the data to. If the file already exists, it is overwritten without notification. For any that is not specified, a file browser is displayed, allowing you to select the file and folder.
Save Pose Maps
This command saves the pose map of each selected object in the current trial to a .csv file. This file contains 6 values for each pose: the XYZ translation and the XYZ Euler angles representing the transform from the X-ray lab frame to the object's local coordinate system (i.e., as if you were traveling from the lab frame to the object frame). If a name for the pose map file is not already specified in the subject file, you will be prompted to browse for the file to create. A link to this file will then be added to the subject file. Before the poses can be saved, they must be calculated using the Compute Object Poses from POIs command.
Save Pose Maps As...
This command saves the pose map for each selected object in the current trial to a new .csv file. You will be prompted to browse for a new file for each object. A link to this new file will then be added to the Subject file.
Save Object Transforms...
This command saves the pose map of each selected object in the current trial to a .txt file. This file contains a 4x4 transform for each pose, expressing the transform from the X-ray lab frame to the object's local coordinate system (i.e., as if you were traveling from the lab frame to the object frame). If a name for the transforms file is not already specified in the subject file, you will be prompted to browse for the file to create. A link to this file will then be added to the subject file. Because these transforms are calculated from the object poses, the Compute Object Poses from POIs command must be used before the transforms can be saved.
Save Landmark Locations...
This command saves a text file with the 3D coordinates of all landmarks on the current object for all frames that have poses. These locations are calculated using the object poses, so the Compute Object Poses from POIs command must be used before the landmarks can be saved. If a name for the landmarks file is not already specified in the subject file, you will be prompted to browse for the file to create. A link to this file will then be added to the subject file.
Export Poses to CMZ
This command exports the pose map of the selected object in the current trial to the session's CMZ file. If the CMZ already contains poses for this object for this trial, those poses will be removed before the current ones are exported. This command does not affect the poses of unselected objects, nor of other trials in the CMZ file. If a CMZ file is not already specified in the subject file, you will be prompted to enter the name of a new one.
Exit
This command exits the program. The program can also be closed using the X in the top right corner of the program window.

View Menu

Show All POIs (Ctrl + A)
toggles the display of all of the POIs for all objects in the current trial.
Show Body Reference Frame (Alt+ R)
toggles the display of the reference frame for the current object, as long as a local frame is defined in the subject file and the pose for the current frame has been calculated.
Show Landmarks (Alt+ L)
toggles the display of all of the landmarks for the current object.
DSX Configuration (Ctrl + Shift + D)
toggles the display of the dockable widget that shows the current session’s objects.
Points of Interest (Ctrl + Shift + I)
toggles the display of the dockable widget that shows the details of the points of interest.
POI Parameters (Ctrl + Shift + P)
toggles the display of the dockable POI Parameters widget.
POI Graphs (Ctrl + Shift + G)
toggles the display of the dockable widget that shows the XYZ coordinate graphs of the currently selected POIs.

Tools Menu

Propagate POIs (Ctrl + P)
This command propagates all POIs in the current object through all of the frames selected in the Propagate Range slider. For each POI, Locate3D fits a GCV spline to the poses in that POI's pose map (as shown in the POI Graphs widget). For each reporting time in the range, if the POI does not already have a pose at that time, Locate3D interpolates the X, Y, and Z splines to calculate the expected location of the POI in each X-ray view. A region of the X-ray image around this point is then searched for a suitable location of the POI center. The size of this region is determined by the Propagation Search Factor parameter. If the POI moves a lot from frame to frame and this movement is not adequately predicted by the splines, you make need to increase the Propagation Search Factor. However, if this parameter is too large, or if several POIs are close to each other, Locate3D may misidentify POIs during propagation.
Compute Object Poses from POIs (Ctrl + C)
This command clears the pose map of the current object, then calculates poses for all frames using the POI locations. For each frame, if three or more POIs have defined locations, Locate3D will calculate the object pose using a least-squares optimization that fits the POIs defined in the 3D voxel data to the POIs defined in the X-ray coordinate system. The 6-DOF pose for that frame is then added to the object's pose map.
Recalculate 3D POIs (Ctrl + R)
This command is enabled only for asynchronous trials. When the first pose for a POI is digitized, there is no valid pose map yet to extrapolate from the two frame times to the reporting time (the pose map splines are straight lines with slope=0, passing through the point being digitized). Thus, the 3D coordinates of the POI at the reporting time could have large errors. There is no way to account for this while digitizing the first POI because the shape of the pose map is not yet known. This function lets you recalculate the 3D coordinates with higher accuracy after the pose map contains more poses.

Options Menu

Settings
opens the Settings dialog

Help Menu

Help (F1)
opens the Locate3D wiki page in the default browser.
About...
displays a dialog with information about Locate3D, including the installed version number. It also contains the Deactivate button, for deactivating your DSX suite license.

Widgets

DSX Configuration

Points of Interest

POI Parameters

POI Graphs

X-ray Windows

Settings

Retrieved from ""