Hi,

AFAIK the B-Spline interpolation was never implemented for the contour model, 
which is why changing the interpolation mode doesn't show any effect. The only 
auto-smooth contour-like class in MITK that I am aware of is 
PlanarSubdivisionPolygon for closed figures and PlanarBezierCurve for open 
figures. Both are PlanarFigures, though.

Best,
Stefan
________________________________________
Von: Mujassim Jamal <mujassimjama...@gmail.com>
Gesendet: Mittwoch, 26. März 2025 12:20
An: Dinkelacker, Stefan
Cc: mitk-users@lists.sourceforge.net
Betreff: Re: [Extern] - [mitk-users] Contour Editing in MITK

Hi Stefan,

While exploring the ContourModel class, I noticed that it provides B_SPLINE 
line interpolation. I wanted to try it out by setting the line interpolation 
(as shown in the code below) on a loaded contour from a .cnt file.

However, for some reason, it still behaves as linear interpolation when I add a 
few points and drag them. Interestingly, when I print the interpolation setting 
after applying it, it shows B_SPLINE, but visually, it still appears to behave 
as LINEAR.

'''
auto* contour = 
dynamic_cast<mitk::ContourModel*>(this->m_ContourNode->GetData());
contour->SetLineSegmentInterpolation(mitk::ContourModel::B_SPLINE);
contour->Modified();
'''

The rest of the setup involves state machine files and the 
ContourModelInteractor, but I’m unsure where I might be making a mistake. Do 
you have any suggestions on what I might be missing?

Best,
Mujassim


On Fri, 21 Feb 2025 at 12:26, Dinkelacker, Stefan 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>> 
wrote:
Hi Mujassim,

this is just a VTK polygon line or something similar that is generated by the 
SurfaceVtkMapper2D for visualization purposes. It is the contour created from 
the cutting plane through the polygon model (called Surface in MITK). While it 
is only used for visualization and therefore is not really accessible from the 
rest of MITK, you can of course also use VTK in your plugin to create a contour 
from a polygon model. Just look at the SurfaceVtkMapper2D class. It probably 
used a vtkCutter. You could then use the output from that filter to manually 
create an MITK contour out of it. But be aware that the contour VTK is creating 
is not the closest vertices of your polygon model to the cutting plane, it will 
create separate points exactly located on the cutting plane. You would need to 
take extra measures to map these to vertices of your polygon model vertices if 
you want to modify the polygon model as well.

Best,
Stefan

[1] https://docs.mitk.org/2024.12/classmitk_1_1SurfaceVtkMapper2D.html

________________________________________
Von: Mujassim Jamal 
<mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com>>
Gesendet: Donnerstag, 20. Februar 2025 05:49
An: Dinkelacker, Stefan
Cc: mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Betreff: Re: [Extern] - [mitk-users] Contour Editing in MITK

Hi Stefan,

While exploring the workbench, I noticed that when creating a polygon model, 
non-interactive 2D contour is also displayed in the 2D views for the 
corresponding generated 3D model:

[image.png]

I wanted to ask if it would be a good idea to replace this non-interactive 
contour with an interactive one by assigning a custom interactor to it?

Best regards,
Mujassim

On Tue, 11 Feb 2025 at 15:33, Dinkelacker, Stefan 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de><mailto:s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>>>
 wrote:
Hi Mujassim,

I think at this stage an example-based exploration is probably the most 
efficient way of going forward. For the Live Wire tool, see [1] for example and 
move up the inheritance until you find the code using an Interactor. An 
Interactor is connected to a state machine and a separate config for that 
statemachine. Both are written as .xml files. The Interactor code connects 
actions and conditions of a statemachine to its methods.

Best,
Stefan

[1] https://docs.mitk.org/2024.12/classmitk_1_1LiveWireTool2D.html
________________________________________
Von: Mujassim Jamal 
<mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com><mailto:mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com>>>
Gesendet: Dienstag, 11. Februar 2025 04:46
An: Dinkelacker, Stefan
Cc: 
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net><mailto:mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>>
Betreff: Re: [Extern] - [mitk-users] Contour Editing in MITK

Hi,

Yes, I previously built MITK v2023.12, but I encountered several compiler 
errors related to ITK (conversion type errors) and POCO (OpenSSL version 
mismatch).

Thank you for suggesting these four tools. I have explored all of them and 
found that the Draw Polygon and LiveWire tools closely match my use case, 
though I will still need to make significant customizations. I plan to refer to 
the code of these two tools to get an initial understanding of point adding, 
dragging, picking, etc.

I would appreciate it if you could share any resources on developing a custom 
interactor in MITK.

Best,
Mujassim

On Wed, 5 Feb 2025 at 17:28, Dinkelacker, Stefan 
<s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de><mailto:s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>><mailto:s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de><mailto:s.dinkelac...@dkfz-heidelberg.de<mailto:s.dinkelac...@dkfz-heidelberg.de>>>>
 wrote:
Hi and welcome to MITK!

The last version of MITK that supported Qt 5 was MITK v2023.12, as far as I 
know. Starting with later versions, Qt 6.6+ is a strict requirement.

To get started, I recommend running the MitkWorkbench application and exploring 
the contour interaction functionalities available in two different plugins:

- Measurement [1]: The Draw Polygon and Draw Subdivision Polygon tools 
demonstrate how contours can be interacted with.

- Segmentation [2]: The Lasso and LiveWire tools are both based on contour 
interaction.

MITK provides at least two approaches for working with contours and interacting 
with them. However, you will need to write some code—for example, handling a 
Modified event to map contour changes back to a 3D model (referred to as a 
Surface in MITK). Additionally, MITK's current interactors only operate on 
individual contour vertices.

If you aim to implement an approach similar to what you showed in your 
video—where multiple neighboring vertices of a contour are modified 
simultaneously—you will need to develop a custom interactor. While this is 
certainly possible, it is not the simplest task for a first MITK project.

Best,
Stefan

[1] https://docs.mitk.org/2024.12/org_mitk_views_measurement.html
[2] 
https://docs.mitk.org/2024.12/org_mitk_views_segmentation.html#org_mitk_views_segmentationlivewiretool

________________________________________
Von: Mujassim Jamal 
<mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com><mailto:mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com>><mailto:mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com><mailto:mujassimjama...@gmail.com<mailto:mujassimjama...@gmail.com>>>>
Gesendet: Mittwoch, 5. Februar 2025 11:27
An: 
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net><mailto:mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>><mailto:mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net><mailto:mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>>>
Betreff: [Extern] - [mitk-users] Contour Editing in MITK

Hi,

First of all, I am new to using MITK. I am working with Qt 5.15.2, but I 
couldn't find an MITK version compatible with this Qt version. Therefore, I 
built the latest version of MITK (v2024.12).

My question is: Can I use the MITK toolkit to create a contour editing feature 
such that, after projecting a 3D model as a contour onto the 2D segmentation, I 
can pick and drag the points on the contour in 2D and see the effect directly 
on the 3D model? I found that MITK provides various contour-related classes, 
but I am unsure whether they can be used for my specific use case.

I am attaching a Google Drive link that contains a video showcasing what I want 
to achieve using MITK.
Video: 
https://drive.google.com/file/d/1Wu3UJmQQeewlR0Thvx7TPP0iYLEmfu1J/view?usp=sharing

Thank you.


_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to