A method to efficiently identify rings in a sparse matrix.
Given a sparse matrix containing rings as 1 values like:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0
0 0 1 0 0 1 0 0
0 0 1 0 0 1 0 0
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0
The module LordOfRings evaluates radius and center of each ring using GPU
acceleration.
A semi-parallel Taubin algorithm has been developed to fit the single circle.
The Ptolemy theorem (about quadrilaterals inscribed in a circle) has been
applied to separate points that belong to different rings.
You can find more info and tutorials in the documentation.
In order to run the non-GPU accelerated fit the module requires:
- matplotlib
- numpy
In addition for the GPU acceleration:
- Nvidia CUDA toolkit
- pycuda
Without the "GPU requirements" the module will work anyway thanks to a
python/numpy (sequential) implementation.