Page MenuHomePhabricator

Integrate 3D Surfaceinterpolation in Segmentationbundle
Closed, ResolvedPublic

Description

The 3D Surfaceinterpolation must be integrated into the segmentation bundle.
The interpolation should be enabled via a checkbox. As soon as it is enabled the interpolation should be running in the background.

All neccessary informations which are required for the interpolation are gathered during the manual delineation of contours.

There should also be some kind of 3DInterpolationController which stores all the contour informations and starts the interpolation process as soon as there are two or more contours drawn by the user. This concept could be similar to the one use for SlicesInterpolation.

Event Timeline

Test protocol from SMersmann

[87032f]: Merge branch 'bug-9067-Integrate3DInterpolationMerge'

Merged commits:

2011-12-05 17:09:17 Andreas Fetzer [f2a0d3]
Removed inserted whitespaces caused by merge


2011-12-05 12:03:11 Andreas Fetzer [a11473]
Final code cleaning and added a little bit documentation


2011-12-02 15:11:57 Andreas Fetzer [196213]
Fixed crash and wrong behaviour

Now button "Accept" is correctly enabled/disabled for 3D interpolation
If drawing several contours quickly MITK crashes no longer and the contours
are incorporated correctly.
Now each segmantation receives position nodes if contours are drawn


2011-11-30 09:20:46 Andreas Fetzer [06dde5]
Added QTimer to QmitkSlicesInterpolator

Now the 3D surface is changing color during interpolation process to signalize
that the calculation has not yet finished.

Now if creating a new (additional) segmantion the interpolated surface is hidden
correctly.

The functionality of hiding the marker nodes now works correctly.


2011-11-28 17:07:37 Andreas Fetzer [88f65b]
Merge remote-tracking branch 'origin/bug-9067-Integrate3DInterpolationMerge' into bug-9067-Integrate3DInterpolationMerge


2011-11-28 17:06:48 Andreas Fetzer [5459cd]
Fixed wrong memory management in correction tool which lead to a crash of the
3D intepolation


2011-11-28 11:31:51 Caspar Goch [585e6b]
Should not be of type unsigned int


2011-11-23 09:41:14 Andreas Fetzer [58b1e8]
Fixed a problem with wrong normal direction and integrated QtConcurrent

Now the interpolation doens't cause the GUI to freeze


2011-11-22 11:00:49 Andreas Fetzer [2b3253]
Merge remote-tracking branch 'origin/bug-9067-Integrate3DInterpolation' into bug-9067-Integrate3DInterpolationMerge

Conflicts:
Modules/QmitkExt/QmitkSlicesInterpolator.cpp


2011-11-22 10:53:19 Andreas Fetzer [169236]
Merged branch bug-9067-Integrate3DInterpolation


2011-11-21 18:30:51 Andreas Fetzer [10bb77]
Merge remote-tracking branch 'origin/bug-9067-Integrate3DInterpolation' into bug-9067-Integrate3DInterpolationTest

Conflicts:
Core/Code/Controllers/mitkPlanePositionManager.cpp
Core/Code/Controllers/mitkPlanePositionManager.h
Core/Code/DataManagement/mitkSlicedGeometry3D.cpp
Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkSegmentationView.cpp
Modules/Bundles/org.mitk.gui.qt.segmentation/src/internal/QmitkSegmentationView.h
Modules/MitkExt/Interactions/mitkPaintbrushTool.cpp
Modules/MitkExt/Interactions/mitkSegTool2D.cpp
Modules/MitkExt/Interactions/mitkSegTool2D.h


2011-11-21 18:06:02 Andreas Fetzer [97c94a]
Improve reduction filter

Now Douglas-Peucker reduction is active by default. But it is assured that
at least each 20th point is incorperated into the reduction


2011-11-17 11:31:18 Andreas Fetzer [60a354]
Some more code cleaning


2011-11-17 11:21:04 Andreas Fetzer [0434bc]
Made some code cleaning and removed MITK_INFOs


2011-10-13 18:23:45 Andreas Fetzer [014405]
WIP

Now DataManager selection for the Segmentation Bundle is fixed.
Now it is possible to perform 3D interpolation for serveral existing segmentations
in the datamanger


2011-10-05 08:57:44 Andreas Fetzer [b06b2a]
Merge branch bug-9117 due to dynamic_cast failure on mac os


2011-09-23 16:19:58 Andreas Fetzer [cc5a3c]
Work still in progress.

Changed the node selections behavious of the segmentation bundle. There is
still one crash situation which I have to fix.

Now 3D interpolation is possible with multiple segmentations activated.


2011-09-08 17:51:59 Andreas Fetzer [948f99]
WIP

Now interpolation should work with several loaded segmentations.


2011-09-07 10:52:03 Andreas Fetzer [135e60]
Work in progress

Working on allowing 3D interpolation if multiple segmentation exists.


2011-09-02 15:44:41 Andreas Fetzer [6fb78a]
WIP

Now it is possible to change an already drawn contour. Navigation between
the contour positions is possible too.

Refactored the filter pipeline for the surface interpolation.

The delineated 2D contours are now displyed as 3D contours.


2011-09-02 09:03:41 Andreas Fetzer [9d714e]
WIP Connection PlanePositions with drawn contours


2011-09-01 09:53:26 Andreas Fetzer [ada545]
Merge remote-tracking branch 'origin/bug-6788-wrong-rotation-with-slicenavigationcontroller' into bug-9067-Integrate-3D-Interpolation-For-Segmentation


2011-09-01 09:53:14 Andreas Fetzer [4d3910]
WIP: Integration of PlanePositionManager

WIP: SurfaceInterpolationController should hold a std map which's key is a
RestorePlanePositionOperation and the data is the drawn contour. If a contour
is added and the PlanePostion already exists then the existing contour should
be replaced by the new one.


2011-09-01 09:39:30 Andreas Fetzer [a2da92]
Changed the AddNewPostion function of the PlanePositionManager. Now it returns
the index position of the added plane. If the plane is not added then the position
of the existing plane is returned.


2011-08-31 15:52:12 Andreas Fetzer [f2dc9e]
WIP

Integrated PlanePostionManger


2011-08-30 15:49:18 Andreas Fetzer [8b382e]
Resolved merge conflicts


2011-08-30 15:40:47 Andreas Fetzer [b48951]
Work in progress

Improved the 3D interpolation a little bit.
Worked on showing/hiding marker nodes and 3D contours


2011-08-26 16:47:42 Andreas Fetzer [9aa0b6]
Work in progress

Removed the "Remember Contour Positions" checkbox from the segmentation view.

Enhanced the SurfaceInterpolationController so that the 3D contours can be
displayed in the 3D window.

Added a new option for the interpolation: "Disable" so that no interpolation
is performed.

Provided the possibility for the 3D interpolation to hide the contours and the
marker nodes and of course to show them again.

The interpolation process is now executed in a pipeline.


2011-08-24 10:33:52 Andreas Fetzer [9320ae]
PlanePositionManager takes now a Geometry2D instead of a RestorePlanePositionOperation

Change the PlanePositionManager so that AddNewPosition() now takes a Geometry2D
instead of an RestorePlanePositionOperation.

Removed the function RestorePlanePosition from the SliceNavigationController.
Now the ExecuteOperation function must be called in order to apply a RestorePlanePositionOperation.

Changed the name of the contour markers. Now they are called just Position and
they count from 1.


2011-08-22 10:30:25 Andreas Fetzer [922eec]
Fixed an crash situation caused by the QmitkSlicesInterpolator.


2011-08-19 15:45:28 Andreas Fetzer [ee069a]
Removed module 3DSurfaceInterpolation and added InterpolationFilters to folder
MITK/Modules/MitkExt/Algorithms.

Now 3D Interpolation is activated by default also the color (2D and 3D) of the
interpolation is set fixed to yellow.

3D Interpolation starts automaticalls if more than one contour is drawn and
refreshes itself automatically with every new contour.


2011-08-17 12:58:47 Andreas Fetzer [080197]
Work in progress

I started to enhance the QmitkSlicesInterpolator so that you can switch between
2D and 3D interpolation.
I also started writing the mitkSurfaceInterpolationController which should take
care of all the drawn contours and the interpolation.
And I integrated the 3DSurfaceInterpolation module in MITK/Modules


2011-08-16 14:21:56 Andreas Fetzer [c012f7]
Merge branch 'bug-9081-Restructure-manual-segmentation-tools' into bug-9067-Integrate-3D-Interpolation-For-Segmentation


2011-08-16 13:28:24 Andreas Fetzer [4b76e2]
Added module 3DSurfaceInterpolation in the MITK/Modules folder


2011-08-15 16:18:36 Andreas Fetzer [c9cde8]
Starting to integrate the 3D surface interpolation for the manual segmentation.

Started writing the mitkSurfaceInterpolationController which holds the extracted
contour and performs the interpolation.


2011-08-11 17:09:38 Andreas Fetzer [da0609]
Deleting unused class


2011-08-11 17:09:01 Andreas Fetzer [bd5174]
Since the RestorePlaneOperation is working on geometries moving them together
with the PlanePositionmanager to the Core


2011-08-11 12:59:43 Andreas Fetzer [f26648]
Did some code cleaning and optimization.


2011-08-10 18:05:49 Andreas Fetzer [76705d]
Work in progress but restoring a certain geometry is now possible.

I also wrote a plane positionmanager which holds the different positions. More
precisely RestorePlanePositions are stored. This operations are holding the
hole transformation of the geometry.


2011-06-03 09:03:12 Andreas Fetzer [4614b6]
Work is still in progress


2011-05-11 10:46:28 Andreas Fetzer [423446]
Started writing the new plane rotation mechanism.

Therefore I created a new operation class. Moreover I adapted the according
geometry classes and defined a new operation type. But work is still in
progress.


2011-03-11 09:23:55 Andreas Fetzer [e26b68]
Worked at the fix


2011-03-04 11:32:40 Andreas Fetzer [de9775]
Tried to fix the rotation problem

Testing the idea to rotate the slice stack by setting the according geometry
directly in the slice navigation controller and not calling its method
"reorientSlices".