Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Markups rework

Sara Rolfe edited this pageOct 19, 2021 ·10 revisions

Main use cases for Markups module

Landmark Registration

  • Placement of a pre-defined set of landmark fiducial points (@mikebind + @ezgimercan + @smrolfe)
  • Placement of two set of corresponding landmark points (not pre-defined, just whichever points I feel can be confidently identified on both volumes) for fiducial registration (@mikebind)

Image resampling

  • Defining a curve (MarkupsCurveNode) along which to resample a volume using curved planar reformats. This curve may be created by VMTK, may be resampled, and may be manually modified or programmatically cropped (@mikebind)
  • Defining the position and orientation of a rectilinear volume using a MarkupsROINode within which to resample a set of registered image volumes (@mikebind)

Defining Boundaries

  • Defining a MarkupsPlaneNode to be used as a cut plane in Dynamic Modeler (@mikebind)
  • Defining a MarkupsROINode as an easily interactive ROI volume which will then be used to convert to a model to convert to a segment to use as a modifier to intersect with another segment (e.g. to keep only the part of the segment which is within the original ROI box)(@mikebind)
  • Placing an ROI to use to send a robotic stage for imaging purposes. Once placed, ROI is manipulated with left-mouse click to adjust size and position. (@jamesobutler)

Quick Measurements

(@jamesobutler)

General Goal: To get a quick measurement of the size of a feature in a volume node such as a tumor without creating a segmentation. The volume node can be static or dynamic such as a live stream.

Ideal case is quick to create measurement and easy to navigate without unnecessary options other than those involved with creating various types of measurements.

Typical Workflow:

  • Markups are created and points placed in one interaction ("Create-and-place").
  • After ending placement interaction, points are occasionally fine tuned by left-click-and-drag points, but usually precision is not critical.
  • Markup control points are usually not removed or added after the initial interaction.
  • Since the markup is easy to redo, it makes sense to just recreate from scratch. Right-click to delete markup.
  • Markups may be in the scene only during the session and destroyed on exit, or saved only for generating statistics later but rarely updated at a later.

Examples:

  • Measure length: Measuring principle axes of a feature such as a tumor without segmenting to quickly estimate size.
    • 2 Points -> Line Node
    • 3+ Points -> Curve (Open or Closed),
  • Measure Angle: Measuring the angle between two features in an image.
    • Angle Node
  • Measure Area: A more detailed measurement of a feature such as tumor than length to estimate size in one 2D slice for estimation purposes.
    • Closed Curve Node
    • Plane Node
  • Measure Volume: A more detailed measurement to quickly estimate size of an object in 3D space.
    • ROI Node

Multiple curves for measurement purposes

(@jamesobutler)

Using an open curve node to place points along an Ultrasound M-Mode trace for determining cardiac output:- Control points occasionally added through ctrl-left click to insert point along curve for additional fine tuning.- Precision usually not critical as placing points in a peak and valley cadence along a horizontal time scale.- All curves (endocardial and epicardial curves) shown at once.

Surface cut Segment Editor effect

(@jamesobutler)

Using a Fiducial node to create a model for segmentation purposes ("Surface cut" segment editor effect).

Labeling of morphological features in 3D views

(@hherhold)

Using micro-CT scans of living or fossil insects, tagging/labeling morphological features:

  • Segmented features are viewed in 3D
  • Labels for features, usually as standard abbreviations, placed interactively in 3D view
  • Typically between 50-200 labels in a given dataset, with frequent rotation, movement, scaling, and clipping of models
  • Placement of labels is typically done quickly (not as quickly as GM landmarks, but I've hot-keyed it because I do so many at once)
  • Rotating and moving the view can sometimes result in inadvertently grabbing a previously placed label and moving it
  • Solution thus far has been to set the hotkey (';') to run a function that locks all previously placed labels in the given markup. This leaves the current one unlocked, but it's been better than the alternative.

Annotating anatomical landmarks on large number of CTs (50-70 points per scan, 100s of scans)

(@ezgimercan)General workflow: Load and 3D render a CT, load a fiducial markup template (a set of points with empty positions), mark them in the same order in each scan, export. Further analysis is done in custom Python scripts (batch mode) using landmark coordinates. It's common to have missing points - they are skipped (formerly set to position 0,0,0). Sometimes, a number (different for each scan) of points are added to the end of the template list (for example, to mark each osteotomy in a postop scan and this number depends on the specific scan).

Preferred interaction is to use keyboard shortcuts for dropping a point, rotating/adjusting view with mouse. Usually the interaction in views is locked for the markups node, this is unlocked when a point needs to be edited.

(smrolfe)Similar to above workflow, with non-clinical images from various modalities (microCT, MRI). Landmarks may be placed manually, automatically, or both. There's a need for a consistent number of named points for each specimen, with position noted as missing if it's not able to be placed. Placing missing points at (0,0,0) has caused issues with visualization and export to other analysis software in the past.

Annotating curves (open and closed) on large number of surface models (OBJ+texture)

(@ezgimercan)General workflow is similar to above, load the model, visualize the texture (automated by custom scripts), mark a set of curves (for example nostrils, columella of the nose, philtrums of the lip etc) with as many point as necessary for each curve, export the curves. The number of curves and their names are pre-determined but number of points is not.

Annotating segment bronchi in chest CTs

(@rbumm)A frequent clinical task in lung surgery is to generate lung masks and airway segmentation in a chest CT, segment and label a tumor, and place fiducial markups at the end branches of all segment bronchi. We expect three segments in the right upper lobe, two in the middle lobe, five in the right lower lobe, five in the left upper lobe, and four in the left lower lobe. It would be great to have a set of lung fiducials available with approximate correct locations and labels texts.

Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp