Skip to Content.
Sympa Menu

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

Subject: CGAL users discussion list

List archive

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


Chronological Thread 
  • From: Sebastian Bachmann <>
  • To:
  • Subject: [cgal-discuss] Holes in mesh-surface when using lloyd or odt optimization on labeled images
  • Date: Fri, 7 Feb 2025 16:30:39 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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 Qkix0DN
  • Ironport-hdrordr: A9a23:/iv316+uBbhyaNBR3ypuk+Frdb1zdoMgy1knxilNoENuH/Bwxv rFoB1E73TJYW4qKQodcdDpAtjifZquz+8O3WB3B8bpYOCGghriEGgG1+ffKlLbakrDH4JmtJ uINpIOcOEYbmIKwPoSgjPIderIqePvmM/HuQ6d9QYVcegAUdAD0+4NMHf+LqQAfngiOXNWLv qhz/sCgwDlVWUcb8y9CHVAdfPEvcf3mJXvZgNDLwI76SGV5AnYp4LSIly95FMzQjlPybAt/S zuiAri/JiutPm911v1y3LT1ZJLg9Hso+EzSvBky/JlawkEuDzYJ7iJaIfy/gzdZ9vfrWrCpe O84yvI+f4Dr085MFvF5icFkDOQrQrGo0WStWNwx0GT7fARDQhKdfZplMZXdADU5FEnu8w52K VX33iBv54SFh/Ymj/hjuK4IS1Chw6wu3pnjuIJlXxYVuIlGcBsRKEkjTdo+a07bVXHwZFiFP MrANDX5f5Qf1/fZ3fFvnN3yNjpWngoBB+JTkULp8TQilFt7ThE5lpdwNZakmYL9Zo7RZUB7+ PYMr5wnLULSsMNd6pyCOoIXMPyAG3QRhDHNn6UPD3cZeg6EmOIr4Sy7KQ+5emsdpBNxJwumI 7ZWFcdrmI2c1KGM7z64HSKyGG+fIyQZ0Wf9igF3ekJhlTVfsuaDRG+
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 67a62721_pi1tOFKro0DFp8LDvX/1lzo/ucip6br3gvEnac9S4GYZUyg 3EvgiyB8n4qo/J5tfhKRW7aDa4LReYVtxafjGtw==

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



Archive powered by MHonArc 2.6.19+.

Top of Page