Improvements to consider

Hi, I really enjoyed using slicer, it is trully a great software.

Few improvements that may be considered:

  • in segment editor: default setting for override other segments should be none (otherwise it is the best way to detroy your work).
  • when you create a new segment or edit one, when only one volume is loaded it would be great that it sets this volume as master volume automatically.
  • for reformat module: would be nice to have a way change one slice orientation by moving its projection in the 2 other orthogonal views.
  • I’ve in the forums that it should be present but I have version 4.10.2 and I don’t have the angle measurements tool.
  • add an option when saving screenshots to choose resolution and dimensions of the image (in order to have high quality images)
  • customize the background color of the 3D view (only 3 options so far: white, black and light blue).
  • when importing multiple files it would be nice to have a way to apply an option to all at once, for example when loading volumes and checking lablelmaps.
  • change and manually set the center of rotation for the transform module (linear transform for example)
  • I tried QTtesting and macros for repetitive tasks, it is pretty good but doesn’t really deal with batch processing. A way to implement batch processing that would interact with most modules functions would be awesome and time saving.
  • segment statistics: add geometric center, maximum diameter, slice maximum diameter, slice minimum diameter measurements could be interesting
  • not paramount but: drawing geometrical shape in segment editor. For example only sphere is possible, but ellipse mostly or square,…

Thank you for this excellent software so far.

Most commonly, segmentation is used for partitioning a volume (each voxel is assigned to one structure), which can be achieved by making the segments overwrite each other. Users that prefer allowing overlapping segments can change the default as shown here.

It is already implemented like this: load a volume and switch to Segment Editor → a segmentation node is created automatically and the current background volume is chosen as master volume.

If you manually create a new segmentation then the current master volume is not selected by default to make it easier to choose any volume as initial master volume. This initial master volume has a special role: it determines the geometry (origin, spacing, axis directions) of the segmentation’s binary labelmap representation, so users may want to make this decision more carefully.

Since the behavior was designed, we added a button to change geometry of the segmentationafter the initial master volume selection. So, we could reconsider the decision and auto-select current background volume as master volume by default for manually created segmentation nodes, too.

This is already available. You can do that by showing slice intersections and holding down Ctrl/Cmd + Alt while click-and-dragging in the view. See list of keyboard/mouse shortcuts for viewers here.

You need to use the latest Slicer Stable Release. If you have any problem with this release then let us know.

It is available in the Screenshot tool in the toolbar. Unfortunately, the feature is currently broken (Update qMRMLScreenShotDialog to support high-resolution magnified screenshot · Issue #3885 · Slicer/Slicer · GitHub). We are upgrading VTK to new version, which might fix the issue.

This is not commonly needed, so we will not add GUI for this, but you can set any background color or gradient as shown here.

In general, you can customize everything by a few lines of Python code, but it would be impossible to expose everything on the GUI or even describe it. We list most commonly needed code snippets in the script repository. If you cannot find how to change some settings then just let us know.

You can give hint to Slicer to interpret a volume as labelmap or segmentation by default. Use .seg.nrrd file extension to load as segmentation; or use -seg or -label filename suffix in the file name.

What would you use this for? Achieving alignment in 3D (3 degrees of freedom rotation and 3 degrees of freedom translation) is not practically feasible using manual translation/rotation, therefore more accurate and much easier, non-iterative landmark-based method (you don’t just specify a pivot point but multiple landmark points). Several landmark registration modules are available in Slicer: “Landmark registration” module is well suited for correcting small misalignments of images; while “Fiducial registration wizard” module (in SlicerIGT extension) is suitable for any kind of data sets an large misalignments.

You can put together automation macros using code snippets from the script repository.

These (and many more) are all available in Segment statistics module in recent Slicer versions.

I’m not sure how much a square-shaped brush would improve things.

Instead, you can effectively get custom brush shape (dynamic shape that takes into account the image content) by adjusting “editable intensity range”. You may also use “Local threshold” effect, which allows quick automatic intensity range selection and paint with automatic leak prevention.

1 Like

Mr Lasso, thank you so much for all those answers. This is very helpful.
I started customizing using the links you sent and the script repository. Unfortunately some don’t work when I just copy and paste, so I guess I’ll have to get working in Python coding now.

I am in the Interventional Radiology field and the idea behind the shape and the center of rotation for transforms is that I needed to modelize an ablation zone as an ellipse of 4x3 cm and then move it and oriente it to specific coordinates. I imported an .stl ellipse and then tried to move it around using the transform module, but wasn’t very precise.

Thanks again for your time.

All examples should work as is. If you have problems with any of them then let us know.

Iterative translation/rotation works well for positioning in 2D, but in 3D but it is just too tedious (you need to move the object and continuously evaluate in multiple views if its position is optimal).

Instead, it is recommended to mark your targets (and optionally, regions to avoid) with markups points/lines/planes and/or segmentation. From these inputs, optimal treatment plan (such as ablation zone shape and size) can be computed automatically using a simple logic. You may then review the plan and make small adjustments.

There have been a number of thermal/laser/radio ablation planning systems built on Slicer for spine, liver, prostate, etc. so if you have specific questions about how to implement anything then we may be able to help. For example, using SlicerRT extension, you can visualize not just a sphere but thermal dose in 2D and 3D as isodose lines/surfaces, compute dose volume histograms for target organs and organs at risk, etc. Using SlicerIGT extension, you can implement real-time navigation of the ablator, optionally using image guidance (CT, MRI, live ultrasound, etc.) and do all the necessary patient registrations and tool calibrations.

Ä°f there are any, make sure indentation are preserved correctly when you are pasting the code as those matter in python.

1 Like

I would suggest another one. Some sort of partial smooth. Smoothing occasionally reduces significant details from the segmentation.

I’ve gave this a try yesterday and managed to implement it (it works like sphere paint but instead of adding to the segment, it smoothes the painted region). It works really well! I’ll test and tune it some more and make it available in a few days.

Great! This tool will help us to save a lot of time. Thanks again

Smoothing brush (you can left-click and drag in slice or 3D views when Smoothing effect is active to locally smooth the segment) will be available in tomorrow’s Slicer Preview Release. Unfortunately, slice views don’t work in the preview release (and there are some other issues - see list), but you can still try this smoothing tool.

Thanks. I’ve managed to download it but some extensions still unavailable and 3D view doesn’t work as well

The 3D view worked turning smooth factor off

A post was split to a new topic: Manual registration and warping of volume

It worked shutting smooth factor down but if I try to make a joint smooth the 3D image disappear

Joint smoothing is probably broken in latest preview release (it uses model smoothing, which does not work yet in latest preview - it will take a few more days to get the VTK9 issues fixed).

Great. It’s good news the possibility of having both working together. Some extensions are unavailable too like slicer heart

Yes, we know about the extension errors. Once we fix basic errors (slice view, model smoothing, …) then we’ll get to the extensions, too.

A post was split to a new topic: Configure segmentation defaults

For reference - Slicer Preview Releases are working now and so the new Smoothing brush is available for testing. See more information and demo video here: New segment editing feature: Smoothing brush

Hi Andras I’m really enjoying the brush smoothing. Very helpful. I’m thinking of other improvements and thought of a way to tilt one plane without affecting others during segmentation. Is it possible?

You can rotate of the slice views independently using reformat module

1 Like