/GuidedDenoising

Guided Mesh Normal Filtering

Primary LanguageC++GNU Lesser General Public License v3.0LGPL-3.0

Guided Denoising

This code implements the denoising algorithm in the following paper:

  • Wangyu Zhang, Bailin Deng, Juyong Zhang, Sofien Bouaziz, Ligang Liu. Guided mesh normal filtering. Pacific Graphics 2015.

It also implements the denoising methods from the following papers for comparison:

  • Shachar Fleishman, Iddo Drori, and Daniel Cohen-Or. 2003. Bilateral mesh denoising. ACM Trans. Graph. 22, 3 (July 2003), 950-953.
  • Thouis R. Jones, Frédo Durand, and Mathieu Desbrun. 2003. Non-iterative, feature-preserving mesh smoothing. ACM Trans. Graph. 22, 3 (July 2003), 943-949.
  • Xianfang Sun, P. L. Rosin, R. R. Martin, and F. C. Langbein. 2007. Fast and Effective Feature-Preserving Mesh Denoising. IEEE Transactions on Visualization and Computer Graphics 13, 5 (September 2007), 925-938.
  • Youyi Zheng, Hongbo Fu, Oscar Kin-Chung Au, and Chiew-Lan Tai. 2011. Bilateral Normal Filtering for Mesh Denoising. IEEE Transactions on Visualization and Computer Graphics 17, 10 (October 2011), 1521-1530.
  • Lei He and Scott Schaefer. 2013. Mesh denoising via L0 minimization. ACM Trans. Graph. 32, 4, Article 64 (July 2013).

The code has been tested on the following platforms:

  • Windows 10 with Qt 5.11.2, Qt Creator 4.7.1, and MSVC 2017 Community Edition (older versions of MSVC may not work);
  • Debian Buster with Qt 5.11.1, Qt Creator 4.6.2, and GCC 8.2.0.

Compiling the source code:

Make sure you have Qt (https://www.qt.io) installed . Then open the file src/MeshDenoising.pro with Qt Creator, and build the source code.

Usage

The following table explains the functionality for the GUI icons.

icon functionality
open read a mesh from file (supports obj, ply and off files)
save save the mesh to file
point render vertices of the mesh
edge render edges of the mesh
face render faces of the mesh
background change the background color of the OpenGL area
about information about this software
Original Mesh show the original mesh
Noisy Mesh show the noisy mesh
Denoised Mesh show the denoised mesh
Clear clear the mesh

Parameters

Please see the supplementary material for details about the parameters in each mesh denoising algorithm or see the code of each algorithm (function initParameters() in .cpp).

License

This software is released under GNU LGPL V3.

Contact

If you have any question, please contact Wangyu Zhang <zhwangyu@mail.ustc.edu.cn> or Bailin Deng <bldeng@gmail.com>.