Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Holes in mesh-surface when using lloyd or odt optimization on labeled images

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Holes in mesh-surface when using lloyd or odt optimization on labeled images


Chronological Thread 
  • From: Sebastian Bachmann <>
  • To:
  • Subject: Re: [cgal-discuss] Holes in mesh-surface when using lloyd or odt optimization on labeled images
  • Date: Mon, 28 Apr 2025 10:54:44 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:Tkwdiqz0g3AoMdNqVcLlKrPwG71zdoMgy1knxilNoERuA6ilfr OV7ZMmPH7P+U0ssR4b+exoVJPsfZqYz+8R3WBzB8bZYOCFghrKEGgK1+KLqFfd8m/Fh4xgPM xbHJSWfeeQMbEMt6jHCWeDf+rIi+P3lpxAzd2utkuFYzsaE51d0w==
  • Ironport-phdr: A9a23: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 uFpgiKruFhjFsPJ3TwTGXR/qg==
  • Ironport-sdr: 680f4256_5DTAQWW1DI1+c9Wi9sJHbdanNDw/uQJp0Pnetz9WuMb23AX bXYOX1+w1HH45poIYLzUVt/CmhBS7VE62W/v+8w==

Hello!

Anyone has an idea what could cause that?
In like 95% of meshes I create I do not have that problem, but once in a while this turns up and is annoying...
It seems to be more often the case, when more than two labels are used (i.e, 0, 1 and 2 and not just 0 and 1).

Anything that I could test will definitely help me :)

Best,
Sebastian

Am 18.02.2025 um 09:06 schrieb Sebastian Bachmann ( via cgal-discuss Mailing List):
Hi!

Sure, here is an example: https://files.reox.at/.mesh/

You may have to run it several times until such a hole appears, as no optimization is present. However, you can make them appear much easier by changing the line with refine_mesh_3 to:
  CGAL::refine_mesh_3(c3t3, domain, criteria, CGAL::parameters::odt());

ODT seems to be more prone than Lloyd.
I uploaded two surface.off files as well, where this can be seen (surface.off is without odt/lloyd and the second run, surface_odt.off is with ODT active).

Best,
Sebastian

Am 17.02.2025 um 11:34 schrieb Jane Tournois:
Hello,
can you please post some code and data so that we can try to reproduce your issue?
Best,
Jane

Le 07/02/2025 à 16:30, Sebastian Bachmann ( via cgal- discuss Mailing List) a écrit :
Hi!

I send this mail to the list yesterday, but apparently it was not posted - but I also did not get a rejection mail? I suspect that attachments are not allowed and get silently dropped?
So here it is again with a link instead, sorry if it is now posted twice!


I extended the example code from mesh_3D_image_with_custom_initialization.cpp to mesh a multi-label 3D image, i.e., I have for example 3 voxel values: 0 (background), 1 (some part), and 2 (some other part).
This works reasonable well, but if I go down with the cell size, I get weird artifacts in the surface of the mesh: at some random places, "holes" appear (see screenshot here: https:// files.reox.at/.mesh/ screenshot.png).

I tried to track down the problem and it can be triggered by using lloyd or odt optimization. When either of these are used, such holes appear in my mesh (much much more in odt) - if I switch them off, these holes are usually gone. But I found also images were such holes appear in certain configurations, even without llyod or odt active.
There, I can influence these holes by choosing a larger relative_error_bound in create_labeled_image_mesh_domain (my default is 1e-7) or by generating a new mesh, as there is some randomness in initialize_triangulation_from_labeled_image (in my code, I specified a seed for the PRNG and thus can reliably trigger it by choosing a specific seed).

Interestingly, it seems to appear more often when more than two labels are used. Thus, in a binary image (only 0 and 1), this does not happen. For example, if I take the same image with 3 labels and replace all 2's by 1's, I get a much better mesh.

Is there anything I may have missed to implement, for example during the creation of the label domain? I can try to track down the problem even more, but don't know at the moment where to look next and thus would appreciate some guidance!

Best,
Sebastian






  • Re: [cgal-discuss] Holes in mesh-surface when using lloyd or odt optimization on labeled images, Sebastian Bachmann, 04/28/2025

Archive powered by MHonArc 2.6.19+.

Top of Page