PlusToolkit / PlusLib

Software library for data acquisition, pre-processing, and calibration for navigated image-guided interventions.
http://www.plustoolkit.org
Other
136 stars 103 forks source link

Automatic pause of image recording #130

Closed Sunderlandkyl closed 5 years ago

Sunderlandkyl commented 7 years ago

It would be nice to allow automatic pause/resume of ultrasound image recording.

Recording could be stopped when a transform status becomes invalid for a certain minimal period of time (e.g., ProbeToTracker becomes invalid for 3 seconds; it would be useful for optical tracking) or when a distance becomes too large (e.g., ProbeToReference or ProbeToNeedle transform translation component becomes larger than 300mm; could be used for EM tracking).

Alternatively, recording could be stopped when image becomes blank. A blank image could be detected as image intensity and variance at a number of predefined positions falling below a threshold value.

See discussion here: https://www.assembla.com/spaces/plus/messages/5497963

Migrated from https://app.assembla.com/spaces/plus/tickets/1069/details

Sunderlandkyl commented 7 years ago

2016-02-18 17:49 Andras Lasso It probably makes more sense to implement this at application level. It would make manual override of start/stop recording, definition of a region of interest (outside of which recording would be stopped), and changing of filename prefixes easier.

3D visualization of tracked images and tools, volume reconstruction, registration, start/stop recording, etc. are all already freely available in SlicerIGT. Automatic start/stop feature could be implemented by adding 10-20 lines of Python code in PlusRemote module. It would not be even necessary to rebuild Slicer or any of the SlicerIGT modules.

prash-p commented 7 years ago

@lassoan could you explain how to manually pause/resume recording with SlicerIGT - as you mentioned above? Also how to modify PlusRemote with python to implement automatic pausing/resuming?

lassoan commented 7 years ago

Install 3D Slicer and SlicerIGT extension.

PlusRemote module is a Python scripted module that you can find in the directory listed in Slicer Application settings / Modules / Additional module paths. Just read the code a couple of times, maybe use a Python debugger (https://www.slicer.org/wiki/Documentation/Nightly/Extensions/Debugging tools) to step through the code that runs when you click a button.

If you want to add more commands to the GUI, you will find specification of commands useful: http://perk-software.cs.queensu.ca/plus/doc/nightly/user/PlusServerCommands.html

adamrankin commented 5 years ago

Closing as no demand for feature.