j20232 / SpecTVSurface

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SpecTVSurface

Nonlinear Spectral Geometry Processing via the TV Transform

Generic badge

alt text

This repository contains the MATLAB implementation of: M.Fumero, M.Moeller, E.Rodolà, Nonlinear Spectral Geometry Processing via the TV Transform. ACM Trans. Graph.39, 6, Article 199, presented at SIGGRAPH 2020.
https://dl.acm.org/doi/abs/10.1145/3414685.3417849

Structure

.
├── DATA               # Directory containing input meshes
│   ├── bob.off
│   ├── garg.off
└── gui
    ├── startgui.m    
└── meshIO
    ├── loadoff.m
└── meshUtilities
    ├── adjacency_mat.m
    ├── calc_LB_FEM.m        
    ├── calc_tri_areas.m
    ├── compute_normals.m     
    ├── div.m   
    ├── edges.m     
    ├── edges_legths.m         
    ├── gaussian.m  
    ├── gaussian_indicator.m
    ├── grad.m 
    ├── gradient_edge.m
    ├── icosphere.m
    ├── lumpedAreas.m  
    ├── total_variation.m
    ├── vertex2triang.m
    └── vertex_from_normals.m
└── plotUtilities    
    ├── add_lights.m       
    ├── add_shadow.m
    ├── draw_shape.m
    ├── inset.m  
    ├── plot_mesh.m
    └── render_options.m 
└── specTV   
    ├── L2squaredProx.m     
    ├── L2squaredProxMasked.m
    ├── PDHG_ACC.m
    ├── PDHG_ACC_n.m
    ├── decomposeNormals.m
    └── decomposeScalar.m
└── utils 
    ├── Pfilter.m   
    ├── axisangle2matrix.m
    ├── findpeaks.m
    ├── normalizerow.m
    ├── normv.m
    ├── pickregion.m
    ├── repdiag.m
    ├── spdiag.m
    └── timescale_iss.m
└── example.m
└── scalar_example.m

Usage

The scripts example.m and scalar_example.m contain minimal implementations of examples for computing the TV spectral decompositions for scalar functions and for normal vector field signals defined on surfaces, respectively. The latter also embeds an interactive GUI that you can play with to apply filters in the TV spectral domain.

GUI usage

Below you can find an example of computing a localized low pass filter on the wing of the gargoyle model, using the GUI:

guiex.mp4

Cite

If you make use of this code in your own work, please cite our paper:

@article{10.1145/3414685.3417849,
author = {Fumero, Marco and M\"{o}ller, Michael and Rodol\`{a}, Emanuele},
title = {Nonlinear Spectral Geometry Processing via the TV Transform},
year = {2020},
issue_date = {December 2020},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {39},
number = {6},
issn = {0730-0301},
url = {https://doi.org/10.1145/3414685.3417849},
doi = {10.1145/3414685.3417849},
journal = {ACM Trans. Graph.},
month = nov,
articleno = {199},
numpages = {16},
keywords = {spectral geometry, total variation}
}

gif link

About


Languages

Language:MATLAB 99.9%Language:M 0.1%