https://github.com/vincent-maladiere/ringcode
Generation and detection of a new circular design for barcode and QRCode
https://github.com/vincent-maladiere/ringcode
opencv python streamlit
Last synced: about 2 months ago
JSON representation
Generation and detection of a new circular design for barcode and QRCode
- Host: GitHub
- URL: https://github.com/vincent-maladiere/ringcode
- Owner: Vincent-Maladiere
- License: mit
- Created: 2022-04-19T21:39:49.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-20T07:16:35.000Z (about 4 years ago)
- Last Synced: 2025-03-28T20:14:34.811Z (about 1 year ago)
- Topics: opencv, python, streamlit
- Language: Jupyter Notebook
- Homepage:
- Size: 4.96 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ring-Code App

# Ring Code
Introducing a new circular-shaped design for barcode and QRCode! Beyond its aesthetic, the Ring code is adapted to tor geometry. It is also a real challenge of implementation.
# Features
## App
You can use the Streamlit app to generate your own RingCode encoded messages! Please note that the decoding module is still under development.
## Requirements
- python > 3.6
## Setup
```
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
streamlit run app.py
```
## Usage
You can play with 3 hyperparameters to change the data capacity and the shape of the barcode, in `src/encoder.py`:
- `module_size_pixel`: the size of each tile (aka module)
- `min_radius_pixels`: the size of the inner band of the ring, in pixel
- `max_radius_pixels`: the size of the outer band of the ring, in pixel
## Roadmap
The development of this RingCode follows the [thesis of Robin Brügger](https://www.dropbox.com/s/a62q4lotoyonnv7/P6_2015_Circular_Codes.pdf?dl=0), so hat tips to him for this impressive work.
Encoding
- [x] Create encoder
- [x] Simple Streamlit App to display the encoding
Decoding
- [x] Barcode recognition (finding the center)
- [ ] Find the perspective correction markers and startmarker
- [ ] Rough perspective correction
- [ ] Accurate perspective correction
- [ ] Read vertical timing information
- [ ] Evaluation of the payload modules
- [ ] Encoding data using Reed Solomon algorithm