Skip to content

bcecil2/graph_flat_norm

Repository files navigation

Computing the Flat Norm on Embedded Graphs

Given a set $A$ in $\mathbb{R}^n$ the Flat Norm can be interpreted as an algorithm which produces a low curvature approximation to $A$. If the set also has a graph structure then there is an efficient algorithm to compute this by cleverly weighting the graph and computing it's minimum cut. This repository implements this algorithm and applies it to 2D images. In this context the Flat Norm can be viewed as an image denoising and smoothing algorithm with a parameter $\lambda$ which provides the threshold for denoising.

For instance a circle of radius $r$ has a curvature of $1/r$ so small circles have high curvature. If we take an image of circles of different radius and set $\lambda$ appropriatley we will remove the circle of largest curvature while preserving the others (notice the circles we preserve are also smoothed in places where the discretization causes high curvature).

Before Smoothing After
Image 1 Image 2

About

The flat norm can be understood as a low curvature approximation to a set. When applied to objects like images the flat norm is essentially a denoising algorithm, features with sharp edges or noise (i.e. high curvature) get removed.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages