Lissage et simplification des surfaces
Lors du travail avec des maillages de surface, il est courant de simplifier ces maillages pour permettre leur analyse. Le lissage peut également être nécessaire, par exemple pour éviter de mesurer des structures voxelisées.
Notre point de départ est le branchoïde simulé que nous avons sauvegardé sur le disque plus tôt dans ce chapitre.
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.000,46.575,42.589 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.500...74.500 2.500...88.500 2.500...83.500 |
| average size | 31.277 |
| number of vertices | 19040 |
| number of faces | 38076 |
|
Lissage des maillages
Les structures circulaires que vous voyez dans cet ensemble de données résultent de l’origine des données : la surface a été créée à partir d’une image binaire. Les lignes correspondent aux bords des voxels. Mesurer la surface serait trompeur. Nous devons donc lisser l’ensemble de données avant de faire des mesures quantitatives.
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.000,46.578,42.588 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.347...74.653 2.328...88.704 2.334...83.678 |
| average size | 31.345 |
| number of vertices | 19040 |
| number of faces | 38076 |
|
Nous pouvons également modifier la finesse du lissage appliqué.
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.000,46.577,42.588 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.360...74.640 2.296...88.797 2.302...83.693 |
| average size | 31.349 |
| number of vertices | 19040 |
| number of faces | 38076 |
|
Les paramètres permettent également de supprimer la structure locale, en particulier le nombre d’itérations.
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.013,46.548,42.623 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 27.575...72.373 6.941...82.192 7.009...79.894 |
| average size | 29.331 |
| number of vertices | 19040 |
| number of faces | 38076 |
|
Il existe également d’autres fonctions pour lisser les surfaces, par exemple basées sur les moindres carrés mobiles.
━━━━━━━━━━━━━━━━━━━━━━ elapsed: 5s (3714.7 it/s) (3707.5 it/s) working ...
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.000,46.575,42.589 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.500...74.500 2.500...88.488 2.500...83.500 |
| average size | 31.218 |
| number of vertices | 19040 |
| number of faces | 38076 |
|
━━━━━━━━━━━━━━━━━━━━━━ elapsed: 5s (3572.6 it/s) (3577.5 it/s) working ...
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.000,46.575,42.589 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.500...74.500 2.500...88.500 2.500...83.500 |
| average size | 31.211 |
| number of vertices | 19040 |
| number of faces | 38076 |
|
Simplification des maillages de surface
Dans le cas où un maillage de surface a trop de sommets et de faces, son traitement peut prendre beaucoup de temps. Des maillages de surface trop détaillés peuvent également ne pas apporter d’informations supplémentaires. Il peut donc être judicieux de simplifier les surfaces, par exemple en réduisant de moitié le nombre de sommets et de faces.
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.024,46.096,39.540 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.347...74.653 2.332...88.704 2.338...83.678 |
| average size | 32.057 |
| number of vertices | 9521 |
| number of faces | 19038 |
|
Si nous simplifions trop la surface, nous risquons de perdre des informations spatiales et de la résolution. L’objet peut alors ne plus être représenté de manière appropriée.
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 49.963,47.454,39.244 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.366...74.634 2.312...88.678 2.318...83.672 |
| average size | 31.565 |
| number of vertices | 1905 |
| number of faces | 3806 |
|
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 50.146,45.715,39.357 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.440...74.623 2.344...88.258 2.412...83.760 |
| average size | 31.898 |
| number of vertices | 192 |
| number of faces | 380 |
|
|
nppas.SurfaceTuple
| origin (z/y/x) | [0. 0. 0.] |
| center of mass(z/y/x) | 49.941,45.866,38.671 |
| scale(z/y/x) | 1.000,1.000,1.000 |
| bounds (z/y/x) | 25.548...75.905 3.858...93.107 3.380...86.408 |
| average size | 33.976 |
| number of vertices | 22 |
| number of faces | 38 |
|