Thanks! I tried the measurementtoolbox plugin, but I got confused. For me,
planar figures are just planar geometry. To create a planar figure, I need to
first use planarfigure->SetPlaneGeometry( planeGeometry ), because control
points are just Point2D. I don't understand how to use planar figure to show
arbitrary reslice of 3D image in QmitkSliceWidget and 3D view in
QmitkStdMultiWidget.
My goal is to show a small reslice of 3D image along a vessle path in
QmitkSliceWidget and 3D view window in QmitkStdMultiWidget; then in
QmitkSliceWidget, create a 2D contour for the vessel cross section based on the
reslice.
I used the code below to create a planar figure, but nothing shows in
QmitkSliceWidget and a rectangle does show in 3D view of QmitkStdMultiWidget.
when I do reinit on this node, I can see the small slice in QmitkSliceWidget
and the slice with the rectangle in 3D view of QmitkStdMultiWidget (see
attachments). But I think the slice has nothing to do with planarfigure but use
the planeGeometry to define the size and orienation, which is kind of similar
as I used slicenavigationcontroller in my first email.
Thanks,
Hongzhi
============================
m_SliceWidget->SetDataStorage(dataStorage);
mitk::PlaneGeometry::Pointer planeGeometry = mitk::PlaneGeometry::New();
planeGeometry->InitializeStandardPlane( 100.0, 100.0 );
mitk::Point2D p0; p0[0] = 20.0; p0[1] = 20.0;
mitk::Point2D p1; p1[0] = 80.0; p1[1] = 80.0;
mitk::PlanarRectangle::Pointer planarRectangle =
mitk::PlanarRectangle::New();
planarRectangle->SetPlaneGeometry( planeGeometry );
planarRectangle->PlaceFigure( p0 );
planarRectangle->SetCurrentControlPoint( p1 );
planarRectangle->GetPropertyList()->SetBoolProperty( "initiallyplaced",
true );
auto rect = mitk::PlanarRectangle::New();
rect->SetPlaneGeometry( planeGeometry );
rect->PlaceFigure(p0);
rect->SetCurrentControlPoint( p1);
rect->GetPropertyList()->SetBoolProperty( "initiallyplaced", true );
rect->Modified();
mitk::DataNode::Pointer newNode= mitk::DataNode::New();
newNode->SetName("planarrect");
newNode->SetData(rect);
newNode->SetBoolProperty("planarfigure.3drendering", true);
GetDataStorage()->Add(newNode);
________________________________________
From: Kislinskiy, Stefan <s.kislins...@dkfz-heidelberg.de>
Sent: Thursday, March 24, 2016 2:27 AM
To: Hongzhi Lan; mitk-users@lists.sourceforge.net
Subject: AW: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Switch on the measurementtoolbox plugin in CMake, configure, generate, build,
and run the Workbech. Open the Measurement View [1], which allows you to draw
different kinds of planar figures. There you can get a good idea of planar
figures. You can place them programmatically, too. See a few tests in the
PlanarFigure module or the following example snippet which should places a
PlanarLine (point variables are of type Point3D):
auto line = mitk::PlanarLine::New();
line->PlaceFigure(firstPoint);
line->SetControlPoint(1, secondPoint);
line->Modified();
To see something, you must put the planar figure into a DataNode and add the
DataNode to the DataStorage of course. Planar figures are only drawn in the 2D
windows. To show them in the 3D window as well, you must set the
planarfigure.3drendering Property to true for your planar figure.
[1] http://docs.mitk.org/2015.05/org_mitk_views_measurement.html
________________________________________
Von: Hongzhi Lan [hong...@stanford.edu]
Gesendet: Donnerstag, 24. März 2016 06:11
An: Kislinskiy, Stefan; mitk-users@lists.sourceforge.net
Betreff: Re: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Also, yes, the use is only segmenting in this extra 2D window, but I still want
to show the slice on 3D View window of QmitkStdMultiWidget to tell the use
where the slice is located in the 3D image.
Thanks,
Hongzhi
________________________________________
From: Hongzhi Lan <hong...@stanford.edu>
Sent: Wednesday, March 23, 2016 10:02 PM
To: Kislinskiy, Stefan; mitk-users@lists.sourceforge.net
Subject: Re: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Thank you so much for your suggestions, but I don't have any clue about how to
use Planar Figures or the camera to achieve what I want. I tried to find some
example code in MITK source about planar figures, but I didn't find any that
can help my work. Could you give me some examples or links to me? I really
appreciate it!
Best,
Hongzhi
________________________________________
From: Kislinskiy, Stefan <s.kislins...@dkfz-heidelberg.de>
Sent: Wednesday, March 23, 2016 9:22 PM
To: Hongzhi Lan; mitk-users@lists.sourceforge.net
Subject: AW: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
In your case I don't see the necessity for a cropped rendering of the
perpendicular slices. Hence, I would *not* recommend to write your own mappers,
as this is rather complicated and I don't see a huge advantage compared to
using planar figures for user guidance which would justify the amount of work.
As an alternative, you could also work with the camera of your extra 2D window
to focus on the vessel in that window, as it seems like the user is segmenting
only in this window anyways. Please also note that we integrated the Vascular
Modeling Toolkit into our superbuild (MITK_USE_VMTK), which may be of help to
you for what you are trying to achieve.
Best regards,
Stefan
________________________________________
Von: Hongzhi Lan [hong...@stanford.edu]
Gesendet: Mittwoch, 23. März 2016 20:30
An: Kislinskiy, Stefan; mitk-users@lists.sourceforge.net
Betreff: Re: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
My application is to create a path(centerline) for a vessel, and show small
reslices perpendicular to the path at QmitkSliceWidget. Then, next step is to
to create a group of 2D contours(segmentation) using those reslices by hand or
level set to define vessel shape at each cross sections (see attachment) .
Finally I use the group of 2D contours to create a polydata surface for the
whole vessel. This is what I want to achieve. Do you think specialized mappers
are the best option for my need? Or do you have some other suggestions?
Thanks a lot!
Hongzhi
________________________________
From: Kislinskiy, Stefan <s.kislins...@dkfz-heidelberg.de>
Sent: Wednesday, March 23, 2016 5:38 AM
To: Hongzhi Lan; mitk-users@lists.sourceforge.net
Subject: RE: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Yes, providing specialized mappers for your intended use case is one solution.
The question is what you want to achieve? Why are you using the extra slice? Do
you want to show the user something on that slice? Then maybe it is okay to
live with the current solution but as a workaround display a PlanarFigure on
top of your extra slice to emphasize the region of interest in the extra slice?
From: Hongzhi Lan [mailto:hong...@stanford.edu]
Sent: Mittwoch, 23. März 2016 11:34
To: Kislinskiy, Stefan; mitk-users@lists.sourceforge.net
Subject: Re: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Thanks! You mean, for PlaneGeometry I may need to write alternatives for
PlaneGeometryDataMapper2D and PlaneGeometryDataVtkMapper3D?
If using PlanarFigure, can I show an arbitrary reslice of 3D image in both
QmitkSliceWidget and 3D view in QmitkStdMultiWidget? Are there any examples
about how to use PlanarFigure to do this?
Thanks,
Hongzhi
________________________________
From: Kislinskiy, Stefan
<s.kislins...@dkfz-heidelberg.de<mailto:s.kislins...@dkfz-heidelberg.de>>
Sent: Tuesday, March 22, 2016 4:17 AM
To: Hongzhi Lan;
mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Subject: RE: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Hi Hongzhi,
the size/geometry of the slice is fine (you can check this by Reinit on the
slice in the Data Manager. However, the standard PlaneGeometry mappers do not
work as you may expect. They use the reference geometry bounds or the world
bounds to cut the planes in shape. You could try to write your own
PlaneGeometry mapper(s) for your PlaneGeometry node or try a different approach
which requires less work, e.g., use a rectangular PlanarFigure to highlight the
ROI in your image slice.
Best,
Stefan
From: Hongzhi Lan [mailto:hong...@stanford.edu]
Sent: Dienstag, 22. März 2016 07:55
To: mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>
Subject: [mitk-users] Showing an arbitrary reslice of 3D image in
QmitkSliceWidget
Hello everyone,
I'm tring to show an arbitrary reslice of 3D image in QmitkSliceWidget and also
3D view in QmitkStdMultiWidget at the same time.
The orientation of the reslice looks fine, but in QmitkSliceWidget and 3D view
QmitkStdMultiWidget the sizes are not right (see the attachments). It should be
a small square(40x40) (see the source code below).
I really need some help on thie issue. I'm using MITK 2015.05.2 and Ubuntu 14.
Thanks!
Hongzhi
The code is as below:
======================
QmitkSliceWidget* m_SliceWidget=new QmitkSliceWidget(parent);
m_SliceWidget->SetDataStorage(dataStorage);
mitk::PlaneGeometry::Pointer planegeometry = mitk::PlaneGeometry::New();
mitk::Point3D origin;
mitk::Vector3D right, bottom, normal;
mitk::FillVector3D(origin, 1.0, 1.0, 1.0);
mitk::FillVector3D(right, 1.0, 0, 0);
mitk::FillVector3D(bottom, 0, 1.0, 1.0);
planegeometry->InitializeStandardPlane(40,40, right.GetVnlVector(),
bottom.GetVnlVector());
planegeometry->SetOrigin(origin);
mitk::SlicedGeometry3D::Pointer slicedGeo3D=mitk::SlicedGeometry3D::New();
slicedGeo3D->InitializeSlicedGeometry(1);
slicedGeo3D->SetPlaneGeometry(planegeometry,0);
slicedGeo3D->SetReferenceGeometry(node_image3D->GetData()->GetTimeGeometry()->GetGeometryForTimeStep(0));
m_SliceWidget->GetSliceNavigationController()->SetInputWorldGeometry3D(slicedGeo3D);
m_SliceWidget->GetSliceNavigationController()->SetViewDirection(mitk::SliceNavigationController::Original);
m_SliceWidget->GetSliceNavigationController()->Update();
GetDataStorage()->Add(m_SliceWidget->GetRenderer()->GetCurrentWorldPlaneGeometryNode());
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users