Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iviewer Shape propagation #88

Open
will-moore opened this issue Mar 27, 2018 · 8 comments
Open

iviewer Shape propagation #88

will-moore opened this issue Mar 27, 2018 · 8 comments

Comments

@will-moore
Copy link
Member

will-moore commented Mar 27, 2018

Major feature supported by Insight but not by iviewer 1.0.0.

See previous ideas at #59

Goals:

  • Allow Shape 'propagation' / 'duplication' within ROI as in Insight
  • Want to avoid repeated propagation of shape to all indexes within ROI - resulting in many duplicates on the same plane (early versions of iviewer).
  • Would be nice to handle "Batch edit" of shapes as discussed with users recently at TIM Dusseldorf:
    • e.g. resize a bunch of Rectangle shapes on different planes.
    • Currently, we can batch-select and move shapes by dragging (even if on different Z-planes) but can't resize multiple shapes.
  • Limitation of Insight propagation is that the viewer doesn't show planes that you are propagating to.
  • Want to support multiple ROI shapes on the same Z/T plane (not supported in Insight) and allow different types of shape e.g. Rectangle and Ellipse in one ROI, as allowed by the server.

Suggestions:

Here, we add a "ROI Grid" option under Edit (could also put this option under a right-click menu on ROI/Shape).

roi-grid1

This displays the shapes under ROI as in the Insight grid.

roi-grid2

  • The selected Z/T index is shown by the blue selected square. Selecting a Z/T index will show that plane in the viewer AND select the shape(s) in this ROI on that plane in the viewer.
  • Editing of these shapes (line-color, line-width etc) should be allowed while in 'ROI Grid' view.
  • Shapes from other ROIs should probably be disabled or hidden on the image viewer, since they can't be selected.
  • Edit > Copy (or keyboard Ctrl C shortcut) will copy the Shape(s) on that plane.

roi-grid3

  • We can then select multiple planes by dragging as in Insight or by Shift-Click (range). If we ensure that a contiguous range is selected (as in screenshot) it could be nice to show this Z/T projection in the image viewer, including all the shapes on all those planes. NB: need to support T projection.
  • Paste Shapes adds them to all selected planes.
  • Clicking "Done" returns to ROI/Shape table

Other thoughts:

  • It could be possible to select and Copy a shape while showing the current ROI/Shapes table, then switch to "ROI grid" view and Paste it to multiple planes (not necessary for the shape to be copied from the same ROI).
  • Tricky issue is to avoid over-duplication of ROI-shapes on the same Z/T plane, since we don't enforce just 1 as in Insight. E.g. if I select a range of of planes in the Grid and Paste a shape, this might already exist on some of those planes. If exact same shape already exists at the same coordinates, we can ignore it and not duplicate. But if other shapes exist we probably just have to duplicate, even if they are quite similar.
  • At least the user has some control, since they can see which Z/T planes already have shapes on when they select and paste. Maybe we could also give some indication if some Z/T planes have multiple shapes on.
  • If grid is too large for right panel, need to add scroll bars.
  • I wonder how we show Shapes that have no Z/T index set?!? I guess we show them on all the grid squares that they cover, maybe in a slightly lighter grey.
@will-moore
Copy link
Member Author

cc @waxenegger @pwalczysko @jburel @mporter-gre Feedback & thoughts welcome!

@pwalczysko
Copy link
Member

If we ensure that a contiguous range is selected ...

Does that mean that the user can paste the ROI only on contiguous range of z/t ? I hope not.

@pwalczysko
Copy link
Member

I would add an axis legend to the grid (z, t). It is hard to realize what the grid actually shows otherwise.

@pwalczysko
Copy link
Member

ROI grid - if the user does not know upfront what that is, there is no idea about why and how this could be useful. Wouldn't it be better to use the word propagate ?

@will-moore
Copy link
Member Author

Does that mean that the user can paste the ROI only on contiguous range of z/t ? I hope not.

Yes - this is the current behaviour in Insight - I can only propagate to a contiguous set of planes at a time. The ROI grid approach is actually more flexible since I can Copy and Paste to any planes, even if they are not contiguous with the original plane.

Adding an axis makes sense, agreed.

I chose "ROI grid" because it is really just a different layout and is not only for propagation. You could simply use it as a different way of seeing the distribution of Shapes in an ROI. Actually, it might be useful to enable the same view of ALL shapes on the image, not just a single ROI. This would need more thought about how to handle display, copy and paste etc, but the view itself could be handy.

The propagation happens simply because you are able to select more than 1 plane to paste the shapes to (and we also know to put all the shapes in the same ROI).
However, it could also be nice to allow propagation without ROI grid by copying a shape, selecting a range of planes (using Z-projection) and pasting to all those planes. The only question in this case would be "Do we put all these shapes in the same ROI or separate ROIs?".

@will-moore
Copy link
Member Author

@pwalczysko It may be that "ROI grid" is not the best term (especially since it will be a single "row" or "column" for most images). I just don't want to pick the wrong name simply to align with Insight behaviour, but it might be that "propagate" is actually the best in this case.

@jburel
Copy link
Member

jburel commented Mar 29, 2018

The term "grid" leads to something different for me, a feature requested by user, the ability to "browse" an image by plane, we could misuse the multiview for that and put each plane in a grid.
That's for a different scoping issue
We should avoid the term grid for propagation

@will-moore
Copy link
Member Author

After more discussion with @pwalczysko and @jburel, I think this is diverging into two independent features:

  • Paste to multiple planes (probably selecting multiple planes via Z/T projection, although JM has some other ideas)
  • Grid-view of Shapes - This would look like the github activity heatmap and provide a useful overview of where your shapes are in the image. Could also be used to select Z/T planes and ranges.

I'll describe these latest ideas on a new issue, to avoid confusion with those above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants