RGB search with numba - 2-3 x faster than numpy
Project description
RGB search with numba - 2-3 x faster than numpy
pip install locate-pixelcolor-numba
Important!
This is a compiled .pyd file (Numba AOT), if you can't import it, run the following code to generate a new pyd file, and replace it with the old .pyd file.
from numba_aot_compiler import compnumba #pip install numba-aot-compiler
import numpy as np
from numba import uint8, uint16
def search_colors(r, g, b, rgbs, divider):
res = np.zeros(b.shape, dtype=np.uint16)
res2 = np.zeros(b.shape, dtype=np.uint16)
zaehler = 0
for rgb in rgbs:
rr, gg, bb = rgb
for i in range(r.shape[0]):
if r[i] == rr:
if g[i] == gg:
if b[i] == bb:
dvquot, dvrem = divmod(i, divider)
res[zaehler] = dvquot
res2[zaehler] = dvrem
zaehler = zaehler + 1
results = np.dstack((res[:zaehler], res2[:zaehler]))
return results
compi2 = compnumba(
fu=search_colors,
funcname="search_colors",
file="searchcolorsnumba",
folder="locate_pixelcolor_numba",
signature=(uint8[:], uint8[:], uint8[:], uint8[:, :], uint16),
parallel=True,
fastmath=True,
nogil=True,
)
How to use it
from locate_pixelcolor_numba import search_colors
import cv2
import time
import numpy as np
pic = cv2.imread(r"pexels-alex-andrews-2295744.jpg") # https://www.pexels.com/pt-br/foto/foto-da-raposa-sentada-no-chao-2295744/
colors = np.array([(66, 71, 69),(62, 67, 65),(144, 155, 153),(52, 57, 55),(127, 138, 136),(53, 58, 56),(51, 56, 54),(32, 27, 18),(24, 17, 8),],dtype=np.uint8)
search_colors(pic,colors)
Out[2]:
array([[[ 0, 4522],
[ 3, 4522],
[ 3, 4523],
...,
[6622, 4522],
[6622, 4523],
[6622, 4524]]], dtype=uint16)
%timeit search_colors(pic,colors)
413 ms ± 1.22 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# More benchmarks: https://github.com/hansalemaos/locate_pixelcolor_cpp
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 Distribution
File details
Details for the file locate_pixelcolor_numba-0.11.tar.gz
.
File metadata
- Download URL: locate_pixelcolor_numba-0.11.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a67a601cc616ad6c82aba1e4f6f543f9c68a5e88ffdaf7b7d0c1377cac9af12b |
|
MD5 | c32ba8c68d6d919885dd4161876bb5ee |
|
BLAKE2b-256 | 0059e1dfb51c225699388d671a4eac77cbe6f633a2dd5ac5e5e6d6f1a8789d60 |
File details
Details for the file locate_pixelcolor_numba-0.11-py3-none-any.whl
.
File metadata
- Download URL: locate_pixelcolor_numba-0.11-py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8943a7425073654ad77d459da76d09bed5cfbea2c9b9c29c3f2abf005091a5d |
|
MD5 | b20328de20e10428f40736c3b9bfae81 |
|
BLAKE2b-256 | d68b3ea90f7cded847ae5c284e649c6990f5520242c7b281856ab418843007d2 |