Menu

Tree [842752] main /
 History

HTTPS access


File Date Author Commit
 .github 2025-01-31 Nithin PS Nithin PS [7d5ea8] Create FUNDING.yml
 demo 3 days ago Nithin PS Nithin PS [842752] Minor changes
 docs 2025-03-04 Nithin PS Nithin PS [99bb8c] Delete docs/temp
 images 2025-04-09 Nithin PS Nithin PS [0b2e22] Add files via upload
 src 2025-08-07 ps-nithin ps-nithin [40855c] v1.2.0 - Support for multiple patterns.
 LICENSE.txt 2025-01-06 Nithin PS Nithin PS [c1f99d] Add files via upload
 README.md 2025-08-09 Nithin PS Nithin PS [ba8fff] Update README.md
 pyproject.toml 2025-08-08 ps-nithin ps-nithin [3fc515] Minor changes

Read Me

pyrebel

A pure python library that implements abstraction of data.


Installation

From PyPI

python3 -m pip install --upgrade pyrebel

From source

git clone https://github.com/ps-nithin/pyrebel

cd pyrebel

python3 -m pip install .

Running demo programs

Demo programs are found in 'demo/' directory.

cd demo/

1. Image abstraction demo

Usage:

python3 pyrebel_main.py --input <filename.png>


Optional arguments

--abs_threshold <value> Selects the threshold of abstraction. (Defaults to 5)


For example,

python3 pyrebel_main.py --input images/abc.png --abs_threshold 10


The output is written to 'output.png'

2. Edge detection demo

This is a demo of edge detection achieved using data abstraction.

Usage:

python3 pyrebel_main_edge.py --input <filename>


For example,

python3 pyrebel_main_edge.py --input images/wildlife.jpg


The output is written to 'output.png'.
Below is a sample input image,



Below is the output image,

3. 2D sketch demo

This is a demo of 2D sketch formation using data abstraction.

Usage:

python3 pyrebel_main_vision.py --input <filename>


Optional arguments for tweaking the result,

1. --edge_threshold <value> Selects the threshold of edge detection.(Defaults to 5)
2. --abs_threshold <value> Selects the threshold of output abstraction. (Defaults to 10)
3. --bound_threshold <value> Selects the threshold of boundary size. (Defaults to 100)

For example,

python3 pyrebel_main_vision.py --input images/lotus.jpg


Below is a sample input image,



Below is the output image,

4. Abstract painting

This is a demo of abstract painting using data abstraction. The output of edge detection is painted to obtain the desired output.

Usage:

python3 pyrebel_main_paint.py --input <filename>


Optional arguments for tweaking the result,

1. --edge_threshold <value> Selects the threshold of edge detection. (Defaults to 10).
2. --paint_threshold <value> Selects the threshold of painting. (Defaults to 5).
3. --block_threshold <value> Selects the threshold of block size. (Defaults to 20).


For example,

Running python3 pyrebel_main_paint.py --input images/elephant.jpg --edge_threshold 10 --block_threshold 50 --paint_threshold 1


Below is the sample input image,



Below is the output image,

5. Pattern recognition demo

This is a demo of pattern recognition achieved using data abstraction.

1. Learning

Usage: python3 pyrebel_main_learn.py --learn /path/to/image/directory/

For example running
python3 pyrebel_main_learn.py --learn images/train-hand/ learns all the images in the directory and links the filename with the signatures.


3. Recognition

Usage: python3 pyrebel_main_learn.py --recognize <filename>

For example running
python3 pyrebel_main_learn.py --recognize images/recognize.png displays the symbols recognized in the file 'images/recognize.png'.

To reset the knowledge base just delete file 'know_base.pkl' in the current working directory. The program expects a single pattern in the input image. Otherwise, a pattern has to be selected by changing variable 'blob_index' accordingly.

For learning / recognizing multiple patterns, use demo script pyrebel_main_learn_multiple.py instead of pyrebel_main_learn.py.

Docs here

Read more about abstraction here

Let the data shine!

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.