Discussion:
[mitk-users] Extending the segmentation module
Chen, Andrew
2017-03-21 16:29:33 UTC
Permalink
Hello,

I am new to MITK and would like to help develop for the Segmentation module. Is that module accepting contributions for new tools, or should I write my software as a new plugin?

The tool I am envisioning would be similar to combining the Binary Threshold and Picking tools, but allowing for multiple selected regions, and having the option of eliminating holes and isthmuses in the volume. (The rationale for not editing these independently is so one can adjust the threshold after selecting the regions and getting a preview). Please let me know if you have any suggestions or tips regarding this.

(Also, as a test run, I created a tool that applies ITK's fuzzy connectedness filter to segment images. It looks like there may be potential patent issues with that particular ITK library, but inform me if this piece might be useful.)

Best,
Andrew
Goch, Caspar Jonas
2017-03-22 14:02:40 UTC
Permalink
Hi Andrew,

Thanks for letting us know. We are aware that the tool creation documentation is pretty out of date/missing, so good job creating a new one. The tool framework is rather historical and replacing it is somewhere on our internal wishlist (and has been for a while). However we currently do not have a timeline for a microservice based replacement.
So, with that context out of the way:
The question of tool/dedicated view regarding the contribution is mainly whether it is designed to solve a general problem. If your tool is (more or less) useful no matter what structure the end user is currently looking at, go for a tool based approach. If it is more an answer to a specific problem where you need only that tool and no other, I would tend towards a dedicated view. Both could be contributed to MITK proper (even if we do not use the UI of either tool or view, we could integrate the underlying algorithm (+tests) into the module).

As for the patent issue, contributing to MITK (according to [1]) requires the contributor to confirm that they have the rights to contribute the code to us. So if you are not sure whether you are allowed to contribute the code, you probably should not. This includes whether your employer even allows the work they paid for being shared with the world.

Best,
Caspar

[1] http://mitk.org/wiki/How_to_contribute


Von: Chen, Andrew [mailto:***@cumc.columbia.edu]
Gesendet: Dienstag, 21. März 2017 17:30
An: mitk-***@lists.sourceforge.net
Betreff: [mitk-users] Extending the segmentation module

Hello,

I am new to MITK and would like to help develop for the Segmentation module. Is that module accepting contributions for new tools, or should I write my software as a new plugin?

The tool I am envisioning would be similar to combining the Binary Threshold and Picking tools, but allowing for multiple selected regions, and having the option of eliminating holes and isthmuses in the volume. (The rationale for not editing these independently is so one can adjust the threshold after selecting the regions and getting a preview). Please let me know if you have any suggestions or tips regarding this.

(Also, as a test run, I created a tool that applies ITK's fuzzy connectedness filter to segment images. It looks like there may be potential patent issues with that particular ITK library, but inform me if this piece might be useful.)

Best,
Andrew
Chen, Andrew
2017-03-22 17:45:42 UTC
Permalink
Hi Caspar,

The tool I am envisioning should be usable in general for any application, and I see it integrating well with the manual editing tools already available (for post-processing). I see this project as accomplishing two goals: 1) streamlining the 3D segmentation of a multi-part object (which currently requires multiple segmentations to be run and union'ed), and 2) adding optional morphological operations to allow for the smoothing of segmentations, all while sensitive to user adjustments. So I will go for the tool based approach.

I thought so about the patent issue; I've dumped that fuzzy segmentation tool onto a branch that will not make it into the final product. The rest of my work is completely contributable.

Thank you for the advice. I've created a phabricator thread (T22654) for further updates on this project.

Best,
Andrew
________________________________
From: Goch, Caspar Jonas [***@Dkfz-Heidelberg.de]
Sent: Wednesday, March 22, 2017 10:02 AM
To: Chen, Andrew; mitk-***@lists.sourceforge.net
Subject: AW: Extending the segmentation module

Hi Andrew,

Thanks for letting us know. We are aware that the tool creation documentation is pretty out of date/missing, so good job creating a new one. The tool framework is rather historical and replacing it is somewhere on our internal wishlist (and has been for a while). However we currently do not have a timeline for a microservice based replacement.
So, with that context out of the way:
The question of tool/dedicated view regarding the contribution is mainly whether it is designed to solve a general problem. If your tool is (more or less) useful no matter what structure the end user is currently looking at, go for a tool based approach. If it is more an answer to a specific problem where you need only that tool and no other, I would tend towards a dedicated view. Both could be contributed to MITK proper (even if we do not use the UI of either tool or view, we could integrate the underlying algorithm (+tests) into the module).

As for the patent issue, contributing to MITK (according to [1]) requires the contributor to confirm that they have the rights to contribute the code to us. So if you are not sure whether you are allowed to contribute the code, you probably should not. This includes whether your employer even allows the work they paid for being shared with the world.

Best,
Caspar

[1] http://mitk.org/wiki/How_to_contribute


Von: Chen, Andrew [mailto:***@cumc.columbia.edu]
Gesendet: Dienstag, 21. März 2017 17:30
An: mitk-***@lists.sourceforge.net
Betreff: [mitk-users] Extending the segmentation module

Hello,

I am new to MITK and would like to help develop for the Segmentation module. Is that module accepting contributions for new tools, or should I write my software as a new plugin?

The tool I am envisioning would be similar to combining the Binary Threshold and Picking tools, but allowing for multiple selected regions, and having the option of eliminating holes and isthmuses in the volume. (The rationale for not editing these independently is so one can adjust the threshold after selecting the regions and getting a preview). Please let me know if you have any suggestions or tips regarding this.

(Also, as a test run, I created a tool that applies ITK's fuzzy connectedness filter to segment images. It looks like there may be potential patent issues with that particular ITK library, but inform me if this piece might be useful.)

Best,
Andrew
Chen, Andrew
2017-03-28 23:12:14 UTC
Permalink
Hi again,

I've finished adding the extensions I was planning. The summary of changes is:

-New tool "Threshold Components" under the 3D segmentation tab. It allows connected threshold segmenting over multiple seed points, and assorted UI improvements to streamline the process (compared to 3DRegionGrow).

-New tool "Pruning" under Segmentation Utilities -> Morphological Operations tab. This incorporates the itkBinaryPruningImageFilter to help clean up segmentations.

-New feature added to Deformable Clipping Plane View, which lets you extract a clipped piece of a segmentation and save it as a new segmentation. (Before, you could calculate volumes but not actually use the tool to edit the segmentation). Now, the Clipping Plane View functions as a 3D eraser tool where you can clip off unwanted pieces from a segmentation.

Anything else I need to do before sending a pull request? I'm 43 commits behind master if that's an issue. My github fork is located here:
https://github.com/ac3957/MITK/tree/T22654-SegmentationModuleExtensions

Best,
Andrew

________________________________
From: Chen, Andrew
Sent: Wednesday, March 22, 2017 1:45 PM
To: Goch, Caspar Jonas; mitk-***@lists.sourceforge.net
Subject: RE: Extending the segmentation module

Hi Caspar,

The tool I am envisioning should be usable in general for any application, and I see it integrating well with the manual editing tools already available (for post-processing). I see this project as accomplishing two goals: 1) streamlining the 3D segmentation of a multi-part object (which currently requires multiple segmentations to be run and union'ed), and 2) adding optional morphological operations to allow for the smoothing of segmentations, all while sensitive to user adjustments. So I will go for the tool based approach.

I thought so about the patent issue; I've dumped that fuzzy segmentation tool onto a branch that will not make it into the final product. The rest of my work is completely contributable.

Thank you for the advice. I've created a phabricator thread (T22654) for further updates on this project.

Best,
Andrew
________________________________
From: Goch, Caspar Jonas [***@Dkfz-Heidelberg.de]
Sent: Wednesday, March 22, 2017 10:02 AM
To: Chen, Andrew; mitk-***@lists.sourceforge.net
Subject: AW: Extending the segmentation module

Hi Andrew,

Thanks for letting us know. We are aware that the tool creation documentation is pretty out of date/missing, so good job creating a new one. The tool framework is rather historical and replacing it is somewhere on our internal wishlist (and has been for a while). However we currently do not have a timeline for a microservice based replacement.
So, with that context out of the way:
The question of tool/dedicated view regarding the contribution is mainly whether it is designed to solve a general problem. If your tool is (more or less) useful no matter what structure the end user is currently looking at, go for a tool based approach. If it is more an answer to a specific problem where you need only that tool and no other, I would tend towards a dedicated view. Both could be contributed to MITK proper (even if we do not use the UI of either tool or view, we could integrate the underlying algorithm (+tests) into the module).

As for the patent issue, contributing to MITK (according to [1]) requires the contributor to confirm that they have the rights to contribute the code to us. So if you are not sure whether you are allowed to contribute the code, you probably should not. This includes whether your employer even allows the work they paid for being shared with the world.

Best,
Caspar

[1] http://mitk.org/wiki/How_to_contribute


Von: Chen, Andrew [mailto:***@cumc.columbia.edu]
Gesendet: Dienstag, 21. März 2017 17:30
An: mitk-***@lists.sourceforge.net
Betreff: [mitk-users] Extending the segmentation module

Hello,

I am new to MITK and would like to help develop for the Segmentation module. Is that module accepting contributions for new tools, or should I write my software as a new plugin?

The tool I am envisioning would be similar to combining the Binary Threshold and Picking tools, but allowing for multiple selected regions, and having the option of eliminating holes and isthmuses in the volume. (The rationale for not editing these independently is so one can adjust the threshold after selecting the regions and getting a preview). Please let me know if you have any suggestions or tips regarding this.

(Also, as a test run, I created a tool that applies ITK's fuzzy connectedness filter to segment images. It looks like there may be potential patent issues with that particular ITK library, but inform me if this piece might be useful.)

Best,
Andrew
Goch, Caspar Jonas
2017-03-30 14:23:05 UTC
Permalink
Hi Andrew,

from a glance at your commits just a couple of remarks:

- 43 commits behind master is not an issue at all

- As per our contribution policy [1,2] we need you to sign off your commits (rationale explained at [2]), we cannot integrate your pull request otherwise

- You have a couple of reformatting/cleanup commits, you might want to squash all the changes into a single, signed off commit, this is also less work for the reviewer

- Unless I missed it there is no user documentation for your tool, just a couple of sentences on how to use it like these [3] would be great. The documentation is generated from these files [4,5]

Once this is done just do a pull request and trigger us in the phabricator task. We might have some additional remarks after building the branch.

Best,
Caspar

[1] http://mitk.org/wiki/How_to_contribute
[2] http://mitk.org/wiki/Sign_off_contribution
[3] http://docs.mitk.org/nightly/org_mitk_views_segmentation.html#org_mitk_gui_qt_segmentationUserManual3DSegmentationTools
[4] https://phabricator.mitk.org/source/mitk/browse/master/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkSegmentation.dox
[5] https://phabricator.mitk.org/source/mitk/browse/master/Plugins/org.mitk.gui.qt.segmentation/documentation/UserManual/QmitkClippingPlane.dox

Von: Chen, Andrew [mailto:***@cumc.columbia.edu]
Gesendet: Mittwoch, 29. März 2017 01:12
An: Goch, Caspar Jonas; mitk-***@lists.sourceforge.net
Betreff: RE: Extending the segmentation module

Hi again,

I've finished adding the extensions I was planning. The summary of changes is:

-New tool "Threshold Components" under the 3D segmentation tab. It allows connected threshold segmenting over multiple seed points, and assorted UI improvements to streamline the process (compared to 3DRegionGrow).

-New tool "Pruning" under Segmentation Utilities -> Morphological Operations tab. This incorporates the itkBinaryPruningImageFilter to help clean up segmentations.

-New feature added to Deformable Clipping Plane View, which lets you extract a clipped piece of a segmentation and save it as a new segmentation. (Before, you could calculate volumes but not actually use the tool to edit the segmentation). Now, the Clipping Plane View functions as a 3D eraser tool where you can clip off unwanted pieces from a segmentation.

Anything else I need to do before sending a pull request? I'm 43 commits behind master if that's an issue. My github fork is located here:
https://github.com/ac3957/MITK/tree/T22654-SegmentationModuleExtensions

Best,
Andrew
________________________________
From: Chen, Andrew
Sent: Wednesday, March 22, 2017 1:45 PM
To: Goch, Caspar Jonas; mitk-***@lists.sourceforge.net<mailto:mitk-***@lists.sourceforge.net>
Subject: RE: Extending the segmentation module
Hi Caspar,

The tool I am envisioning should be usable in general for any application, and I see it integrating well with the manual editing tools already available (for post-processing). I see this project as accomplishing two goals: 1) streamlining the 3D segmentation of a multi-part object (which currently requires multiple segmentations to be run and union'ed), and 2) adding optional morphological operations to allow for the smoothing of segmentations, all while sensitive to user adjustments. So I will go for the tool based approach.

I thought so about the patent issue; I've dumped that fuzzy segmentation tool onto a branch that will not make it into the final product. The rest of my work is completely contributable.

Thank you for the advice. I've created a phabricator thread (T22654) for further updates on this project.

Best,
Andrew
________________________________
From: Goch, Caspar Jonas [***@Dkfz-Heidelberg.de]
Sent: Wednesday, March 22, 2017 10:02 AM
To: Chen, Andrew; mitk-***@lists.sourceforge.net<mailto:mitk-***@lists.sourceforge.net>
Subject: AW: Extending the segmentation module
Hi Andrew,

Thanks for letting us know. We are aware that the tool creation documentation is pretty out of date/missing, so good job creating a new one. The tool framework is rather historical and replacing it is somewhere on our internal wishlist (and has been for a while). However we currently do not have a timeline for a microservice based replacement.
So, with that context out of the way:
The question of tool/dedicated view regarding the contribution is mainly whether it is designed to solve a general problem. If your tool is (more or less) useful no matter what structure the end user is currently looking at, go for a tool based approach. If it is more an answer to a specific problem where you need only that tool and no other, I would tend towards a dedicated view. Both could be contributed to MITK proper (even if we do not use the UI of either tool or view, we could integrate the underlying algorithm (+tests) into the module).

As for the patent issue, contributing to MITK (according to [1]) requires the contributor to confirm that they have the rights to contribute the code to us. So if you are not sure whether you are allowed to contribute the code, you probably should not. This includes whether your employer even allows the work they paid for being shared with the world.

Best,
Caspar

[1] http://mitk.org/wiki/How_to_contribute


Von: Chen, Andrew [mailto:***@cumc.columbia.edu]
Gesendet: Dienstag, 21. März 2017 17:30
An: mitk-***@lists.sourceforge.net<mailto:mitk-***@lists.sourceforge.net>
Betreff: [mitk-users] Extending the segmentation module

Hello,

I am new to MITK and would like to help develop for the Segmentation module. Is that module accepting contributions for new tools, or should I write my software as a new plugin?

The tool I am envisioning would be similar to combining the Binary Threshold and Picking tools, but allowing for multiple selected regions, and having the option of eliminating holes and isthmuses in the volume. (The rationale for not editing these independently is so one can adjust the threshold after selecting the regions and getting a preview). Please let me know if you have any suggestions or tips regarding this.

(Also, as a test run, I created a tool that applies ITK's fuzzy connectedness filter to segment images. It looks like there may be potential patent issues with that particular ITK library, but inform me if this piece might be useful.)

Best,
Andrew
Loading...