SkillAgentSearch skills...

3DGeometry

ICP alignment & Mesh Denoising (Diffusion & Bilateral to vertices/normal)

Install / Use

/learn @mincongzhang/3DGeometry
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

OpenMesh

OpenMesh practices

1.ICP ANN, GSL and OpenMesh libraries are used to achieve the ICP meshes alignment algorithm. With ANN library, kd-tree is built to find nearest neighbour points. Matrices computing is available in GSL library. UI is built in MFC. (A bug is found when degree 180 bunny is used as the 2nd mesh)

2.Denoising Five different approaches are implemented for the mesh denoising;
Denoise1 - Apply bilateral filter to vertices, using KNN for normal calculation[1];
Denoise2 - Apply bilateral filter to vertices, using one-ring neighbour for normal calculation[1];
Denoise3 - Apply bilateral filter to vertices, directly using vertices normal from OpenMesh library;
LaplaceDenoise - Apply uniform Laplacian filter to denoise;
BiNormDenoise - Apply bilateral filter to face normal vectors, and then update each vertex in faces[2].

[1]Fleishman, Shachar, Iddo Drori, and Daniel Cohen-Or. "Bilateral mesh denoising." ACM Transactions on Graphics (TOG). Vol. 22. No. 3. ACM, 2003.
[2]Lee, Kai-Wah, and Wen-Ping Wang. "Feature-preserving mesh denoising via bilateral normal filtering." Computer Aided Design and Computer Graphics, 2005. Ninth International Conference on. IEEE, 2005.

P.S.
In paper [1], the psudocode Vertex v' = v+n*(sum/normalizer) should be changed into Vertex v' = v-n*(sum/normalizer);
In paper [2], the equation(6) and (7) from LSE computation, n*trans(n) should be changed into trans(n)*n;
otherwise the results are not correct.

Related Skills

View on GitHub
GitHub Stars9
CategoryDevelopment
Updated1y ago
Forks2

Languages

Mercury

Security Score

55/100

Audited on May 15, 2024

No findings