<div dir="ltr">Wei-<div><br></div><div>FYI- I have an initial implementation in a VTK remote module (vtkPointCloud) of an isosurface algorithm that can generate open surfaces (typically from truncated distance functions). If you have some data I can use it for testing and debugging purposes....</div><div><br></div><div>Best,</div><div>W</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 7, 2016 at 11:43 AM, Wei Liu <span dir="ltr"><<a href="mailto:weiliu620@gmail.com" target="_blank">weiliu620@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-family:verdana,sans-serif">Dženan, thanks for the reply. I have no experience in mesh generation or surface construction, so I try to use filters in ITK/VTK. </span><div><span style="font-family:verdana,sans-serif"><br></span></div><div><font face="verdana, sans-serif">vtkDelaunay3D seems for closed surface. Do you know any filter for open surface? </font><br></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">From your email it seems straightforward to generate mesh given point clouds with normal vectors. I don't trust my own implementation, but I'll give it a try if I couldn't find any filters. Do you know any papers, or example implementations, either inside or outside of ITK community? </font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Thanks again,</font></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 6, 2016 at 9:17 AM, Dženan Zukić <span dir="ltr"><<a href="mailto:dzenanz@gmail.com" target="_blank">dzenanz@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Hi Wei,</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">you should calculate the peak of your probability so you have "thin" layer of voxels representing your surface. Coupled with the knowledge of the normal, it would then be only the matter of determining connectivity for the voxels to generate triangles of the mesh. And yes, you should use VTK for mesh storage and later filtering (such as smoothing).</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">You could look at <a href="https://itk.org/Doxygen/html/classitk_1_1CannyEdgeDetectionImageFilter.html" target="_blank">Canny filter</a>'s source code for an example in ITK of how to do thinning.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">HTH,</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Dženan</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Mon, Sep 5, 2016 at 5:25 PM, Wei Liu <span dir="ltr"><<a href="mailto:weiliu620@gmail.com" target="_blank">weiliu620@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Hi ITK users, <div><br></div><div>I'm trying to detect (possibly multiple) open surface in a 3D volume. Suppose I have a filter that give me a 3D feature map (e.g. the probability of each voxel being on the surface), where should I go from this feature map to construct smooth open surfaces? </div><div><br></div><div>I did some search. It seems most of existing examples construct isosurface mesh from a binary volume (or distance map from it). The binary volume usually has a closed surface on the object boundary, so it is different from my problem of open surface.</div><div><br></div><div>I can probably calculate the normal of the surface at each voxel, if that helps. <br></div><div><br></div><div>I guess I should do some skeleton extraction and get a 'thin' set of voxels on the surface, and use some filters in ITK or VTK(new to VTK but willing to learn if necessary) to convert binary volumes to surface meshes, and do some smoothing, filling holes etc. </div><div><br></div><div>Thanks!</div><div><br></div><div><br></div></div>
<br></div></div>______________________________<wbr>_______<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/product<wbr>s/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FA<wbr>Q</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/insight-users</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_______<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_<wbr>FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>William J. Schroeder, PhD<br>Kitware, Inc. - Building the World's Technical Computing Software<br>28 Corporate Drive<br>Clifton Park, NY 12065<br><a href="mailto:will.schroeder@kitware.com" target="_blank">will.schroeder@kitware.com</a><br><a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a><br>(518) 881-4902</div></div></div>
</div>