Run Length Smoothing Algorithm
Project description
RLSA
C implementation of RLSA for use in python.
Usage
Requirements
- python version >= 3.8
Install
Install with:
pip install rlsa
Usage
The main function is rlsa.
It takes as input a black and white image (as a uint8 numpy array), and the hvs, vsv and ahvs values.
The function returns a new black and white image, leaving the original one intact.
You can also import the rlsa_horizontal and rlsa_vertical functions to apply only one of the RLSA components.
Usage example
A full example would be:
import cv2
from rlsa import rlsa
img = cv2.imread("assets/rlsa_test_image.jpg", cv2.IMREAD_GRAYSCALE)
_, binary_img = cv2.threshold(img, 190, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
hsv = vsv = 25
out_img = rlsa(binary_img, hsv, vsv, hsv//10)
With a similar setup, the other functions can be used like so:
out_img = rlsa_horizontal(binary_img, hsv)
out_img = rlsa_vertical(binary_img, vsv)
Results
| Input image | After RLSA |
|---|---|
| Horizontal only | Vertical only |
|---|---|
Included scripts
A few scripts are included in the tests folder. One is a python implementation of rlsa, serving as reference. The other two compare the result and speed of the implementations.
To run the those scripts, you need to install opencv.
Test
python -m tests.test assets/rlsa_test_image.jpg
Benchmark
python -m tests.benchmark assets/rlsa_test_image.jpg
--> C version is around 400 times faster than the naive python one.
Misc
Note: the numpy tutorial/doc here is (it seems) outdated (be carefull when using it).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rlsa-0.0.2.tar.gz.
File metadata
- Download URL: rlsa-0.0.2.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
408f622326cdc5014382bbbb12b4436a4526550840c1e9aa46dbae1e5c61d139
|
|
| MD5 |
1bc105662f29d1c2701ff69da8c46e32
|
|
| BLAKE2b-256 |
d247dde21065ae05d934fcf4be5e75add2153fba33aaae573512ab1eec4e514f
|
File details
Details for the file rlsa-0.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.
File metadata
- Download URL: rlsa-0.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
- Upload date:
- Size: 25.0 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.24+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
173179694dce381f1d4354d46331c45a3171e3e9b0ef55a22b411f3eeb4465eb
|
|
| MD5 |
553c4e7ef9b261b45b9f145b16449c30
|
|
| BLAKE2b-256 |
8bc6128dfc6315a7b6e3f8d57a33609f70b89c372029c5ad437735c6a2bcc865
|
File details
Details for the file rlsa-0.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.
File metadata
- Download URL: rlsa-0.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
- Upload date:
- Size: 27.0 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.24+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11fe68b32563e36af47db92fe4ec80335f342ea3a3ae4f494cc2dfa0d166d525
|
|
| MD5 |
239cea319a22362b66e30fc4832c49e3
|
|
| BLAKE2b-256 |
21177536daf74aacbfc1943e7dfbdae2b66c65b39fd2148618ce58ac1aa51720
|
File details
Details for the file rlsa-0.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl.
File metadata
- Download URL: rlsa-0.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
- Upload date:
- Size: 27.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.24+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf7e7511de7c528cf6bf87499d7ca523c2cef20b8497d0e6e9538040dd9df254
|
|
| MD5 |
c410f500758f3807bb0678e44a534444
|
|
| BLAKE2b-256 |
4ebffbe9d30a6f06b57f3b77339813c9b5dc67a8c8fe8f0bec031a5257d60783
|