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
Hashes for rlsa-0.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 173179694dce381f1d4354d46331c45a3171e3e9b0ef55a22b411f3eeb4465eb |
|
MD5 | 553c4e7ef9b261b45b9f145b16449c30 |
|
BLAKE2b-256 | 8bc6128dfc6315a7b6e3f8d57a33609f70b89c372029c5ad437735c6a2bcc865 |
Hashes for rlsa-0.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11fe68b32563e36af47db92fe4ec80335f342ea3a3ae4f494cc2dfa0d166d525 |
|
MD5 | 239cea319a22362b66e30fc4832c49e3 |
|
BLAKE2b-256 | 21177536daf74aacbfc1943e7dfbdae2b66c65b39fd2148618ce58ac1aa51720 |
Hashes for rlsa-0.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf7e7511de7c528cf6bf87499d7ca523c2cef20b8497d0e6e9538040dd9df254 |
|
MD5 | c410f500758f3807bb0678e44a534444 |
|
BLAKE2b-256 | 4ebffbe9d30a6f06b57f3b77339813c9b5dc67a8c8fe8f0bec031a5257d60783 |