Thickness Maps / surface extraction

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Thickness Maps / surface extraction

A. Gatti
Hi,

I’m emailing to see if there are any suggestions or forewarnings for what I am attempting to do.

I work with cartilage segmentation and have used the raw pixel data in the past to calculate thickness values for regions of interest. To do this, I define 2 sides of the cartilage (bone interface and surface). I’ve typically done this by finding contours for the bone and cartilage and if the cartilage contour has a bone Neighbour it is considered to be on the bone-interface, otherwise it is on the surface. Then thickness is calculated for every bone-interface pixel, finding the surface pixel with the minimum Euclidean distance.

I am hoping to translate this to vtk for a few reasons.
1. I would like to be able to visualize the thickness maps. - which is a pain to do in pixel format. I’ve tried rendering and it doesn’t look so hot.
2. I’m interested in trying out something like iterative closest point registration between two bone-interface surfaces to be able to make comparisons between thickness maps.

My thoughts on how to go about this are to:
1. Use my existing contouring method to get the bone-interface and surface
2. Extract the 3D location of each of these pixels and apply surfaceReconstructionFilter to the bone-interface and surface points separately.
3. Continue with what I have previously done - iterate over every point from the new bone-interface surface to find the closest point on the surface. I would then assign the thickness calculated for every point to that point and be able to view a map of the thicknesses?

Alternatively, would it be feasible to assign the thickness values I already calculated in pixel land (simpleitk / numpy) to the bone-interface surface and ski- step 3 all together?

Are there any obvious pit falls with this approach?

I should have said at the start, I am doing this using the python api for vtk if that makes a difference. I have done some playing already, mostly using marching cubes, which works great with the whole segmentation, but not so great with the surfaces alone :).

Thanks,

Anthony.

Sent from my iPad
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
https://vtk.org/mailman/listinfo/vtkusers
Reply | Threaded
Open this post in threaded view
|

Re: Thickness Maps / surface extraction

Dean Inglis-2
Hi Anthony,

I wrote all my cartilage segmentation code in VTK some years ago and was able to generate colored
3D triangulated surface maps with EDT thickness values mapped from pixels to triangle vertices.
I had an interactive widget that would allow you to mouse over the surface in 3D and probe
and display thickness values.

If you want to contact me off the forum I can give you my mcmaster contact info.

best regards,
Dean


On Fri, Jan 11, 2019 at 8:42 AM A. Gatti <[hidden email]> wrote:
Hi,

I’m emailing to see if there are any suggestions or forewarnings for what I am attempting to do.

I work with cartilage segmentation and have used the raw pixel data in the past to calculate thickness values for regions of interest. To do this, I define 2 sides of the cartilage (bone interface and surface). I’ve typically done this by finding contours for the bone and cartilage and if the cartilage contour has a bone Neighbour it is considered to be on the bone-interface, otherwise it is on the surface. Then thickness is calculated for every bone-interface pixel, finding the surface pixel with the minimum Euclidean distance.

I am hoping to translate this to vtk for a few reasons.
1. I would like to be able to visualize the thickness maps. - which is a pain to do in pixel format. I’ve tried rendering and it doesn’t look so hot.
2. I’m interested in trying out something like iterative closest point registration between two bone-interface surfaces to be able to make comparisons between thickness maps.

My thoughts on how to go about this are to:
1. Use my existing contouring method to get the bone-interface and surface
2. Extract the 3D location of each of these pixels and apply surfaceReconstructionFilter to the bone-interface and surface points separately.
3. Continue with what I have previously done - iterate over every point from the new bone-interface surface to find the closest point on the surface. I would then assign the thickness calculated for every point to that point and be able to view a map of the thicknesses?

Alternatively, would it be feasible to assign the thickness values I already calculated in pixel land (simpleitk / numpy) to the bone-interface surface and ski- step 3 all together?

Are there any obvious pit falls with this approach?

I should have said at the start, I am doing this using the python api for vtk if that makes a difference. I have done some playing already, mostly using marching cubes, which works great with the whole segmentation, but not so great with the surfaces alone :).

Thanks,

Anthony.

Sent from my iPad
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
https://vtk.org/mailman/listinfo/vtkusers

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
https://vtk.org/mailman/listinfo/vtkusers