Skip to main content

Python library for computing Harmonic Beltrami Signature(HBS)

Project description

HBS - Harmonic Beltrami Signature

This is a Python library for computing Harmonic Beltrami Signature(HBS). It provides a set of tools for boundary conditions, mesh generation, conformal welding and other mathematical problems, particularly suited for numerical computations in complex analysis.

Reference

This implementation is based on the paper:

Harmonic Beltrami Signature: A Novel 2D Shape Representation for Object Classification
Chenran Lin, Lok Ming Lui DOI: 10.1137/22M1470852

Installation

Install directly from PyPI:

pip install hbs

Or install from source:

  1. Clone this repository:
    git clone https://github.com/ChanceAroundYou/hbs_python.git
    
  2. Install dependencies:
    pip install -r requirements.txt
    

Main Modules

  • hbs.py: HBS algorithm for computing HBS and recontructing shape from HBS
  • boundary.py: Boundary processing tools
  • conformal_welding.py: Conformal welding algorithm implementation
  • mesh.py: Mesh generation and processing
  • utils/:
    • geodesic_welding.py: Geodesic welding
    • mobius.py: Möbius transformations
    • poisson.py: Poisson integral implementation
    • tool_functions.py: Utility functions
    • zipper.py: Zipper algorithm implementation
  • qc/: Quasiconformal mapping algorithms
    • bc.py: Beltrami coefficient computation
    • lsqc.py: Least squares quasiconformal mapping algorithm

Usage Example

Compute HBS from image

from hbs.boundary import get_boundary
from hbs import get_hbs

img_path = 'img/example.jpg'
bound = get_boundary(img_path, bound_point_num)
hbs, he, cw, disk = get_hbs(bound, circle_point_num, density)

Reconstruct shape from HBS

from hbs import reconstruct_from_hbs

## `disk` must be a DiskMesh corresponding to give `hbs`
bound, _, _, _ = reconstruct_from_hbs(hbs, disk)

Please also refer to example.ipynb

Dependencies

  • NumPy
  • SciPy
  • Matplotlib
  • Opencv

Contributing

Contributions are welcome via pull requests.

Code Author

  • Chenran Lin

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hbs-0.3.2.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hbs-0.3.2-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file hbs-0.3.2.tar.gz.

File metadata

  • Download URL: hbs-0.3.2.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.10

File hashes

Hashes for hbs-0.3.2.tar.gz
Algorithm Hash digest
SHA256 657a5939545d19ec89fc6b1dae464c728036a3258366aee31ef91ae9d8beb092
MD5 869dd57f14ba4a87dab2e99d7e56b320
BLAKE2b-256 8af0f1da11e01d904e6e1f2a9f8af05f4bcf9aaa44e8dbaba6a0faffbc2adce9

See more details on using hashes here.

File details

Details for the file hbs-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: hbs-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.10

File hashes

Hashes for hbs-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d7f8feedb25f1f77d26f8d68871c9c1f30ebef1e3fb8b12f758f82d0dbd0a1d8
MD5 4775fa3ea38b88245ee33a16b8529728
BLAKE2b-256 9cd4d3c756e36b4885aae830c2d1b1a2212cd5806bb35ce5178dc184fa8af591

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page