Spectral decomposition of a 3D shape.
More...
|
template<typename Mesh , typename DerivedA , typename DerivedB > |
unsigned | Euclid::spectrum (const Mesh &mesh, unsigned k, Eigen::MatrixBase< DerivedA > &lambdas, Eigen::MatrixBase< DerivedB > &phis, SpecOp op=SpecOp::laplace_beltrami, SpecDecomp decomp=SpecDecomp::symmetric, unsigned max_iter=1000, double tolerance=1e-10) |
| Spectral decomposition of a mesh. More...
|
|
This package contains several methods to conduct spectral decomposition of a given shape by computing the eigenvalues and eigenvectors of the Laplacian matrix. It provides the basis for various spectral shape processing algorithms.
References
[1] Zhang, H., Van Kaick, O., Dyer, R. Spectral Mesh Processing. Computer Graphics Forum, 2010.
[2] Vallet, B., Levy, B. Spectral Geometry Processing with Manifold Harmonics. Computer Graphics Forum, 2008.
Enumerator |
---|
symmetric |
Solving the symmetric Laplacian matrix.
Let \(L=D^{-1/2}SD^{-1/2}\), then solving the eigenvalue problem of this symmetric matrix \(LX=\lambda X\).
|
generalized |
Solving the generalized eigenvalue problem.
Let \(L=D^{-1}S\), then solving the generalized eigenvalue problem \(SX=\lambda DX\).
|
Enumerator |
---|
laplace_beltrami |
The Laplace-Beltrami operator.
|
graph_laplacian |
The graph Laplacian operator.
|
template<typename Mesh , typename DerivedA , typename DerivedB >
- Parameters
-
mesh | The input mesh. |
k | The number of eigenvalues to compute. Note that the actual size of the spectrum might be smaller than k when the computation doesn't converge. |
lambdas | The output eigenvalues, sorted in ascending order. |
phis | The output eigenfunctions corresponding to the eigenvalues. |
op | The Laplace operator to use. |
decomp | The eigen system to solve. |
max_iter | The maximum number of iterations for eigen decomposition. |
tolerance | The tolerance of accuracy loss in eigen decomposition. |
- Returns
- The number of converged eigenvalues.
- See also
- SpecOp
-
SpecDecomp