View Issue Details

IDProjectCategoryView StatusLast Update
0004284Slicer4Core: Segmentationpublic2017-04-28 17:13
Reporterfepegar Assigned Topinter  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.6.0 
Target VersionFixed in VersionSlicer 4.7.0 
Summary0004284: Segment 0 is modified when modifying Segment 1
Description

Steps:
1) Load a volume
2) Go to Segment Editor module
3) Create segment 0, paint something
4) Create segment 1, copy data from segment 0 using "Logical operators->Copy"
5) Apply "Smoothing" (I have tried Median and Gaussian) to segment 1

Segment 0 has almost disappeared, it looks like the difference between segment 1 and what segment 0 should be.

TagsNo tags attached.

Activities

fepegar

fepegar

2017-04-27 08:34

reporter   ~0014434

I had a similar issue today after copying from one segment to a different one. And modifying the latter.

pinter

pinter

2017-04-27 09:02

developer   ~0014435

Thanks, Fernando, for reporting this issue. We'll look into this ASAP.

lassoan

lassoan

2017-04-27 09:15

developer   ~0014436

I cannot reproduce it using the latest nightly version. Please record a screen capture and attach it, along with the logs (menu: Help / Report a bug).

Note that if "bypass masking" option is disabled and "Overwrite other segments" is "All segments" then it's expected that the segment overwrites all other segments (even the one that you've copied from).

pinter

pinter

2017-04-27 10:32

developer   ~0014437

I agree with Andras. If Masking/Overwrite other segments is set to None, then smoothing only affects Segment_1. Segment_2 changes by default because the default masking setting does not allow overlaps.

My opinion about setting the default masking to None (allow overwrites) is getting stronger and stronger. It seems that the advantage of having the old Editor behaviour by default is overshadowed by the surprises the users get, like this one.

lassoan

lassoan

2017-04-27 11:16

developer   ~0014439

Depending on the use case, both overlap and overwrite behavior can be just as surprising.

Maybe in the Logical effect we should enable overlap instead of temporarily disabling it (with the "bypass masking" checkbox)?

fepegar

fepegar

2017-04-27 11:33

reporter  

slicer.log (11,235 bytes)
fepegar

fepegar

2017-04-27 11:35

reporter   ~0014442

I am using the latest nightly.

What I'm doing:
1) Load a label map volume with contours
2) Go to Segmentations, create new segmentation, import the label map. I have now one segment A
3) Go to Segment Editor, set the label map as master volume, click on Add segment, segment B is added, I click on it
4) Go to Logical operators, select segment A, click on Apply (Bypass masking is checked by default)
5) Go to Fill between slices, click on initialize, click on apply

This seems to happen independently of the settings in the Masking area.

What I expect:
Segment A is not modified
Segment B is interpolated

What I get:
Segment A is empty
Segment B is interpolated

It gets funnier. After this, I click on Undo, click on segment A, apply interpolation and it happens on segment B, deleting again the info in segment A.

I keep getting this error in the log (which I am attaching):
[ERROR][VTK] 27.04.2017 17:09:42 [vtkMRMLScene (0x1956fc0)] (/home/kitware/Dashboards/Nightly/Slicer-0/Modules/Loadable/Segmentations/Logic/vtkSlicerSegmentationsModuleLogic.cxx:673) - vtkSlicerSegmentationsModuleLogic::GetSegmentForSegmentSubjectHierarchyItem: Segmentation does not contain segment with given ID: Segment_1

Please let me know if you need any additional info.

lassoan

lassoan

2017-04-27 11:47

developer   ~0014443

I'm not sure about Undo (it depends if you undo while auto-update is enabled, etc), but otherwise the behavior seems to be correct.

You might have assumed that fill between contours is for the selected segment only, but it's actually for all visible segments (hide segments that you want to exclude from the interpolation). Also, masking settings are bypassed. Click on "more details" at the top of the effect options to see all details.

How do you think we could make things simpler?

fepegar

fepegar

2017-04-28 06:46

reporter   ~0014454

I see. I did assume that Fill between contours was for the selected segment only.

I understand now that I'm not dealing with a bug but with a misunderstanding of the module's logic.

I feel like the term "bypass" might not be understandable for every user. Maybe "Ignore masking options" (as in the tool tip) would be clearer.

Also, I think copying a segment is kind of a special operation in the sense that one doesn't expect the original thing that was copied to disappear. I'm not sure I'm being able to explain myself here.

lassoan

lassoan

2017-04-28 17:12

developer   ~0014464

I've updated the effect help text according to your suggestions. Hopefully it'll be more clear.

Issue History

Date Modified Username Field Change
2016-10-20 10:41 fepegar New Issue
2016-10-20 10:41 fepegar Status new => assigned
2016-10-20 10:41 fepegar Assigned To => pinter
2017-04-27 08:34 fepegar Note Added: 0014434
2017-04-27 09:02 pinter Note Added: 0014435
2017-04-27 09:15 lassoan Note Added: 0014436
2017-04-27 10:32 pinter Note Added: 0014437
2017-04-27 11:16 lassoan Note Added: 0014439
2017-04-27 11:33 fepegar File Added: slicer.log
2017-04-27 11:35 fepegar Note Added: 0014442
2017-04-27 11:47 lassoan Note Added: 0014443
2017-04-28 06:46 fepegar Note Added: 0014454
2017-04-28 17:12 lassoan Note Added: 0014464
2017-04-28 17:12 lassoan Status assigned => resolved
2017-04-28 17:12 lassoan Fixed in Version => Slicer 4.7.0
2017-04-28 17:12 lassoan Resolution open => fixed
2017-04-28 17:13 lassoan Status resolved => closed