# Detects colors in images 8 x faster than Numpy / Uses Cython - returns a dict
## Tested against Windows 10 / Python 3.11 / Anaconda
### pip install locate-pixelcolor-cython-multi-auto-compile
Very fast RGB color search in pictures.
I wrote a couple of variations of this function. All of them can be used in Python.
Cython, detects colors in images 2-3 x faster than Numpy # pre-compiled for Python 3.10
https://github.com/hansalemaos/locate_pixelcolor_cythonsingle
Cython, but with multiple processors (5-10x faster than Numpy) # pre-compiled for Python 3.10
https://github.com/hansalemaos/locate_pixelcolor_cythonmulti
Cupy, using the GPU (up to 8x faster than Numpy)
https://github.com/hansalemaos/locate_pixelcolor_cupy
C - shared library (10x faster than Numpy)
https://github.com/hansalemaos/locate_pixelcolor_c
C++ - parallel_for - shared library (up to 10x faster than Numpy)
https://github.com/hansalemaos/locate_pixelcolor_cpp_parallelfor
C++ - pragma omp - shared library (20x faster than Numpy)
https://github.com/hansalemaos/locate_pixelcolor_cpppragma
Numba - compiled - ahead of time (2-3x faster than numpy)
https://github.com/hansalemaos/locate_pixelcolor_numba
Numba Cuda - compiled - ahead of time (10x faster than numpy)
https://github.com/hansalemaos/locate_pixelcolor_numbacuda
```python
import numpy as np
import cv2
from locate_pixelcolor_cython_multi_auto_compile import search_colors
# 4525 x 6623 x 3 picture https://www.pexels.com/pt-br/foto/foto-da-raposa-sentada-no-chao-2295744/
picx = r"C:\Users\hansc\Downloads\pexels-alex-andrews-2295744.jpg"
pic = cv2.imread(picx)
colors0 = np.array([[255, 255, 255]],dtype=np.uint8)
resus0 = search_colors(pic=pic, colors=colors0)
colors1=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)
resus1 = search_colors(pic=pic, colors=colors1)
# b,g,r = pic[...,0],pic[...,1],pic[...,2]
# %timeit resus0=search_colors(pic,colors0)
# %timeit np.where(((b==255)&(g==255)&(r==255)))
# %timeit resus1=search_colors(pic, colors1)
# %timeit np.where(((b==66)&(g==71)&(r==69))|((b==62)&(g==67)&(r==65))|((b==144)&(g==155)&(r==153))|((b==52)&(g==57)&(r==55))|((b==127)&(g==138)&(r==136))|((b==53)&(g==58)&(r==56))|((b==51)&(g==56)&(r==54))|((b==32)&(g==27)&(r==18))|((b==24)&(g==17)&(r==8)))
# 22.9 ms ± 63.9 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
# 161 ms ± 1.96 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
# 131 ms ± 400 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
# 939 ms ± 6.95 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# resus1
# Out[5]:
# defaultdict(list,
# {(66, 71, 69): array([[ 0, 4522],
# [ 3, 4522],
# [ 3, 4523],
# ...,
# [5895, 852],
# [6043, 2871],
# [6063, 2897]], dtype=int32),
# (51,
# 56,
# 54): array([[ 2, 4522],
# [ 15, 4523],
# [ 48, 4035],
# ...,
# [5898, 1961],
# [5898, 1962],
# [5903, 1975]], dtype=int32),
# (127,
# 138,
# 136): array([[ 0, 38],
# [ 2, 0],
# [ 3, 19],
# [ 5, 13],
# [ 6, 10],
# [ 8, 9],
# [ 8, 42],
# [ 9, 34],
# [ 9, 46],
# [ 11, 1],
# [ 11, 8],
# [ 11, 9],
# [ 11, 25],
# [ 13, 0],
# [ 14, 36],
# [ 15, 21],
# [ 15, 22],
# [ 15, 33],
# [ 15, 40],
# [ 49, 56],
# [ 562, 3300],
# [ 615, 1746],
# [ 616, 1738],
# [ 662, 15],
# [ 663, 11],
# [ 894, 3218],
# [ 897, 3249],
# [ 907, 2166],
# [ 937, 1673],
# [1241, 3230],
# [1245, 1691],
# [1246, 1693],
# [1318, 1705],
# [1319, 1651],
# [1366, 1590],
# [1371, 1536],
# [1372, 1541],
# [1379, 1586],
# [1379, 1623],
# [1382, 1589],
# [1383, 1594],
# [1384, 1623],
# [1386, 1564],
# [1391, 1584],
# [1394, 1569],
# [1394, 1571],
# [1394, 1573],
# [1398, 1591],
# [1400, 1569],
# [1404, 1551],
# [1404, 1571],
# [1405, 1555],
# [1406, 1566],
# [1412, 1585],
# [1414, 1550],
# [1414, 1560],
# [1414, 1567],
# [1415, 1538],
# [1416, 1568],
# [1420, 1562],
# [1420, 1573],
# [1421, 1575],
# [1423, 1554],
# [1438, 1518],
# [1479, 3069],
# [2295, 2404],
# [2310, 2346],
# [2312, 2371],
# [2323, 2353],
# [2323, 2714],
# [2391, 2672],
# [2642, 3440],
# [2851, 2706],
# [2863, 2625],
# [2921, 2383],
# [2926, 2633],
# [2932, 2651],
# [2951, 2685],
# [2953, 2688],
# [2972, 2464],
# [3148, 2606],
# [3295, 2509],
# [3311, 2617],
# [3314, 2622],
# [3320, 2623],
# [3325, 2368],
# [3331, 2613],
# [3332, 2614],
# [3337, 2310],
# [3343, 2615],
# [3372, 2300],
# [3375, 2595],
# [3382, 2597],
# [4208, 2576],
# [4227, 2577],
# [4268, 289],
# [4347, 433],
# [4564, 811],
# [4686, 884],
# [4752, 860],
# [4995, 856],
# [5013, 2974],
# [5050, 460],
# [5093, 3457],
# [5094, 2925],
# [5130, 2849],
# [5131, 2850],
# [5136, 666],
# [5169, 3548],
# [5180, 3337],
# [5247, 3101],
# [5256, 2947],
# [5257, 3232],
# [5265, 3250],
# [5275, 2935],
# [5298, 2866],
# [5314, 3369],
# [5321, 3859],
# [5363, 2916],
# [5364, 3182],
# [5394, 2728],
# [5399, 3344],
# [5434, 2579],
# [5448, 3321],
# [5452, 3678],
# [5476, 3328],
# [5509, 2973]], dtype=int32),
# (144,
# 155,
# 153): array([[ 1, 1],
# [ 1, 40],
# [ 2, 21],
# [ 6, 5],
# [ 6, 22],
# [ 6, 25],
# [ 6, 69],
# [ 8, 22],
# [ 9, 1],
# [ 9, 38],
# [ 9, 66],
# [ 9, 75],
# [ 10, 38],
# [ 11, 17],
# [ 11, 22],
# [ 12, 17],
# [ 13, 37],
# [ 16, 4],
# [ 16, 91],
# [ 17, 81],
# [ 17, 94],
# [ 19, 14],
# [ 20, 0],
# [ 21, 2],
# [ 48, 60],
# [ 63, 57],
# [ 877, 3035],
# [ 969, 2294],
# [1018, 2260],
# [1258, 3185],
# [1258, 3189],
# [1262, 3218],
# [1262, 3219],
# [1263, 1673],
# [1277, 3212],
# [1303, 1717],
# [1312, 1660],
# [1337, 1641],
# [1340, 1642],
# [1360, 1583],
# [1363, 3163],
# [1366, 1573],
# [1369, 1596],
# [1370, 1591],
# [1372, 1573],
# [1381, 1620],
# [1382, 1594],
# [1393, 1599],
# [1395, 1592],
# [1397, 1596],
# [1400, 1563],
# [1400, 1592],
# [1402, 1561],
# [1403, 1544],
# [1403, 1554],
# [1404, 1560],
# [1405, 1603],
# [1407, 1586],
# [1409, 1563],
# [1409, 1590],
# [1409, 1596],
# [1410, 1597],
# [1411, 1556],
# [1411, 1599],
# [1420, 1577],
# [1797, 2667],
# [2151, 2318],
# [2293, 2347],
# [2297, 2351],
# [2297, 2368],
# [2301, 2335],
# [2301, 2381],
# [2306, 2371],
# [2306, 2376],
# [2309, 2416],
# [2309, 2424],
# [2317, 2363],
# [2318, 2371],
# [2319, 2412],
# [2321, 2425],
# [2326, 2366],
# [2329, 2401],
# [2383, 2601],
# [2687, 2636],
# [2710, 2731],
# [2718, 2689],
# [2810, 2597],
# [2968, 2457],
# [2970, 2442],
# [3004, 2684],
# [3010, 2413],
# [3070, 2515],
# [3075, 2524],
# [3087, 2669],
# [3209, 2529],
# [3300, 2524],
# [3330, 2613],
# [3331, 2514],
# [3347, 2381],
# [3465, 2568],
# [3888, 2430],
# [3942, 1891],
# [3942, 1893],
# [3950, 1890],
# [4227, 2576],
# [4321, 98],
# [4420, 497],
# [4420, 500],
# [4421, 500],
# [4496, 619],
# [4530, 814],
# [4721, 859],
# [4723, 858],
# [4770, 952],
# [4822, 3101],
# [4864, 3195],
# [4923, 155],
# [4941, 548],
# [4942, 549],
# [4978, 2675],
# [4993, 882],
# [5112, 3145],
# [5141, 625],
# [5149, 736],
# [5185, 643],
# [5217, 3420],
# [5225, 3391],
# [5226, 3386],
# [5227, 3673],
# [5237, 3260],
# [5299, 4207],
# [5308, 3709],
# [5320, 3857],
# [5328, 3750],
# [5359, 2744],
# [5365, 2847],
# [5372, 2779],
# [5388, 2603],
# [5389, 3079],
# [5392, 2871],
# [5399, 2879],
# [5416, 2895],
# [5424, 3085],
# [5428, 3107],
# [5435, 2580],
# [5457, 3375],
# [5461, 3093],
# [5466, 3252],
# [5466, 3254],
# [5472, 3356],
# [5478, 671],
# [5483, 3150],
# [5485, 3670],
# [5487, 3672],
# [5510, 3433],
# [5513, 3107],
# [5537, 3010],
# [5537, 3012],
# [5579, 2977],
# [5755, 1061]], dtype=int32),
# (32,
# 27,
# 18): array([[ 3, 3240],
# [ 3, 3241],
# [ 12, 3349],
# ...,
# [6622, 2844],
# [6622, 2854],
# [6622, 2865]], dtype=int32),
# (24,
# 17,
# 8): array([[ 669, 1723],
# [ 670, 1722],
# [ 781, 3120],
# ...,
# [6622, 4522],
# [6622, 4523],
# [6622, 4524]], dtype=int32),
# (53,
# 58,
# 56): array([[ 2, 4523],
# [ 2, 4524],
# [ 4, 4522],
# ...,
# [5906, 1969],
# [5908, 1246],
# [6057, 2862]], dtype=int32),
# (52,
# 57,
# 55): array([[ 1, 4524],
# [ 49, 4035],
# [ 52, 4030],
# ...,
# [6040, 2868],
# [6049, 2868],
# [6058, 2863]], dtype=int32),
# (62,
# 67,
# 65): array([[ 0, 4523],
# [ 50, 4037],
# [ 52, 4033],
# ...,
# [5903, 1973],
# [5904, 1952],
# [6041, 2868]], dtype=int32)})
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hansalemaos/locate_pixelcolor_cython_multi_auto_compile",
"name": "locate-pixelcolor-cython-multi-auto-compile",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "cython,compile,automatic,rgb,color,search",
"author": "Johannes Fischer",
"author_email": "aulasparticularesdealemaosp@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/96/a7/bb3848f94de00e6edd1f14db0b5e9b57538a2ee165cc94dfe15776430a04/locate_pixelcolor_cython_multi_auto_compile-0.10.tar.gz",
"platform": null,
"description": "\r\n# Detects colors in images 8 x faster than Numpy / Uses Cython - returns a dict\r\n\r\n## Tested against Windows 10 / Python 3.11 / Anaconda\r\n\r\n### pip install locate-pixelcolor-cython-multi-auto-compile\r\n\r\n\r\nVery fast RGB color search in pictures. \r\n\r\nI wrote a couple of variations of this function. All of them can be used in Python.\r\n\r\nCython, detects colors in images 2-3 x faster than Numpy # pre-compiled for Python 3.10\r\nhttps://github.com/hansalemaos/locate_pixelcolor_cythonsingle\r\n\r\nCython, but with multiple processors (5-10x faster than Numpy) # pre-compiled for Python 3.10\r\nhttps://github.com/hansalemaos/locate_pixelcolor_cythonmulti\r\n\r\nCupy, using the GPU (up to 8x faster than Numpy)\r\nhttps://github.com/hansalemaos/locate_pixelcolor_cupy\r\n\r\nC - shared library (10x faster than Numpy)\r\nhttps://github.com/hansalemaos/locate_pixelcolor_c\r\n\r\nC++ - parallel_for - shared library (up to 10x faster than Numpy)\r\nhttps://github.com/hansalemaos/locate_pixelcolor_cpp_parallelfor\r\n\r\nC++ - pragma omp - shared library (20x faster than Numpy)\r\nhttps://github.com/hansalemaos/locate_pixelcolor_cpppragma\r\n\r\nNumba - compiled - ahead of time (2-3x faster than numpy)\r\nhttps://github.com/hansalemaos/locate_pixelcolor_numba\r\n\r\nNumba Cuda - compiled - ahead of time (10x faster than numpy)\r\nhttps://github.com/hansalemaos/locate_pixelcolor_numbacuda\r\n\r\n\r\n```python\r\nimport numpy as np\r\nimport cv2\r\nfrom locate_pixelcolor_cython_multi_auto_compile import search_colors\r\n\r\n# 4525 x 6623 x 3 picture https://www.pexels.com/pt-br/foto/foto-da-raposa-sentada-no-chao-2295744/\r\npicx = r\"C:\\Users\\hansc\\Downloads\\pexels-alex-andrews-2295744.jpg\"\r\npic = cv2.imread(picx)\r\ncolors0 = np.array([[255, 255, 255]],dtype=np.uint8)\r\nresus0 = search_colors(pic=pic, colors=colors0)\r\ncolors1=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)\r\nresus1 = search_colors(pic=pic, colors=colors1)\r\n\r\n# b,g,r = pic[...,0],pic[...,1],pic[...,2]\r\n# %timeit resus0=search_colors(pic,colors0)\r\n# %timeit np.where(((b==255)&(g==255)&(r==255)))\r\n# %timeit resus1=search_colors(pic, colors1)\r\n# %timeit np.where(((b==66)&(g==71)&(r==69))|((b==62)&(g==67)&(r==65))|((b==144)&(g==155)&(r==153))|((b==52)&(g==57)&(r==55))|((b==127)&(g==138)&(r==136))|((b==53)&(g==58)&(r==56))|((b==51)&(g==56)&(r==54))|((b==32)&(g==27)&(r==18))|((b==24)&(g==17)&(r==8)))\r\n# 22.9 ms \u00b1 63.9 \u00b5s per loop (mean \u00b1 std. dev. of 7 runs, 10 loops each)\r\n# 161 ms \u00b1 1.96 ms per loop (mean \u00b1 std. dev. of 7 runs, 10 loops each)\r\n# 131 ms \u00b1 400 \u00b5s per loop (mean \u00b1 std. dev. of 7 runs, 10 loops each)\r\n# 939 ms \u00b1 6.95 ms per loop (mean \u00b1 std. dev. of 7 runs, 1 loop each)\r\n\r\n# resus1\r\n# Out[5]:\r\n# defaultdict(list,\r\n# {(66, 71, 69): array([[ 0, 4522],\r\n# [ 3, 4522],\r\n# [ 3, 4523],\r\n# ...,\r\n# [5895, 852],\r\n# [6043, 2871],\r\n# [6063, 2897]], dtype=int32),\r\n# (51,\r\n# 56,\r\n# 54): array([[ 2, 4522],\r\n# [ 15, 4523],\r\n# [ 48, 4035],\r\n# ...,\r\n# [5898, 1961],\r\n# [5898, 1962],\r\n# [5903, 1975]], dtype=int32),\r\n# (127,\r\n# 138,\r\n# 136): array([[ 0, 38],\r\n# [ 2, 0],\r\n# [ 3, 19],\r\n# [ 5, 13],\r\n# [ 6, 10],\r\n# [ 8, 9],\r\n# [ 8, 42],\r\n# [ 9, 34],\r\n# [ 9, 46],\r\n# [ 11, 1],\r\n# [ 11, 8],\r\n# [ 11, 9],\r\n# [ 11, 25],\r\n# [ 13, 0],\r\n# [ 14, 36],\r\n# [ 15, 21],\r\n# [ 15, 22],\r\n# [ 15, 33],\r\n# [ 15, 40],\r\n# [ 49, 56],\r\n# [ 562, 3300],\r\n# [ 615, 1746],\r\n# [ 616, 1738],\r\n# [ 662, 15],\r\n# [ 663, 11],\r\n# [ 894, 3218],\r\n# [ 897, 3249],\r\n# [ 907, 2166],\r\n# [ 937, 1673],\r\n# [1241, 3230],\r\n# [1245, 1691],\r\n# [1246, 1693],\r\n# [1318, 1705],\r\n# [1319, 1651],\r\n# [1366, 1590],\r\n# [1371, 1536],\r\n# [1372, 1541],\r\n# [1379, 1586],\r\n# [1379, 1623],\r\n# [1382, 1589],\r\n# [1383, 1594],\r\n# [1384, 1623],\r\n# [1386, 1564],\r\n# [1391, 1584],\r\n# [1394, 1569],\r\n# [1394, 1571],\r\n# [1394, 1573],\r\n# [1398, 1591],\r\n# [1400, 1569],\r\n# [1404, 1551],\r\n# [1404, 1571],\r\n# [1405, 1555],\r\n# [1406, 1566],\r\n# [1412, 1585],\r\n# [1414, 1550],\r\n# [1414, 1560],\r\n# [1414, 1567],\r\n# [1415, 1538],\r\n# [1416, 1568],\r\n# [1420, 1562],\r\n# [1420, 1573],\r\n# [1421, 1575],\r\n# [1423, 1554],\r\n# [1438, 1518],\r\n# [1479, 3069],\r\n# [2295, 2404],\r\n# [2310, 2346],\r\n# [2312, 2371],\r\n# [2323, 2353],\r\n# [2323, 2714],\r\n# [2391, 2672],\r\n# [2642, 3440],\r\n# [2851, 2706],\r\n# [2863, 2625],\r\n# [2921, 2383],\r\n# [2926, 2633],\r\n# [2932, 2651],\r\n# [2951, 2685],\r\n# [2953, 2688],\r\n# [2972, 2464],\r\n# [3148, 2606],\r\n# [3295, 2509],\r\n# [3311, 2617],\r\n# [3314, 2622],\r\n# [3320, 2623],\r\n# [3325, 2368],\r\n# [3331, 2613],\r\n# [3332, 2614],\r\n# [3337, 2310],\r\n# [3343, 2615],\r\n# [3372, 2300],\r\n# [3375, 2595],\r\n# [3382, 2597],\r\n# [4208, 2576],\r\n# [4227, 2577],\r\n# [4268, 289],\r\n# [4347, 433],\r\n# [4564, 811],\r\n# [4686, 884],\r\n# [4752, 860],\r\n# [4995, 856],\r\n# [5013, 2974],\r\n# [5050, 460],\r\n# [5093, 3457],\r\n# [5094, 2925],\r\n# [5130, 2849],\r\n# [5131, 2850],\r\n# [5136, 666],\r\n# [5169, 3548],\r\n# [5180, 3337],\r\n# [5247, 3101],\r\n# [5256, 2947],\r\n# [5257, 3232],\r\n# [5265, 3250],\r\n# [5275, 2935],\r\n# [5298, 2866],\r\n# [5314, 3369],\r\n# [5321, 3859],\r\n# [5363, 2916],\r\n# [5364, 3182],\r\n# [5394, 2728],\r\n# [5399, 3344],\r\n# [5434, 2579],\r\n# [5448, 3321],\r\n# [5452, 3678],\r\n# [5476, 3328],\r\n# [5509, 2973]], dtype=int32),\r\n# (144,\r\n# 155,\r\n# 153): array([[ 1, 1],\r\n# [ 1, 40],\r\n# [ 2, 21],\r\n# [ 6, 5],\r\n# [ 6, 22],\r\n# [ 6, 25],\r\n# [ 6, 69],\r\n# [ 8, 22],\r\n# [ 9, 1],\r\n# [ 9, 38],\r\n# [ 9, 66],\r\n# [ 9, 75],\r\n# [ 10, 38],\r\n# [ 11, 17],\r\n# [ 11, 22],\r\n# [ 12, 17],\r\n# [ 13, 37],\r\n# [ 16, 4],\r\n# [ 16, 91],\r\n# [ 17, 81],\r\n# [ 17, 94],\r\n# [ 19, 14],\r\n# [ 20, 0],\r\n# [ 21, 2],\r\n# [ 48, 60],\r\n# [ 63, 57],\r\n# [ 877, 3035],\r\n# [ 969, 2294],\r\n# [1018, 2260],\r\n# [1258, 3185],\r\n# [1258, 3189],\r\n# [1262, 3218],\r\n# [1262, 3219],\r\n# [1263, 1673],\r\n# [1277, 3212],\r\n# [1303, 1717],\r\n# [1312, 1660],\r\n# [1337, 1641],\r\n# [1340, 1642],\r\n# [1360, 1583],\r\n# [1363, 3163],\r\n# [1366, 1573],\r\n# [1369, 1596],\r\n# [1370, 1591],\r\n# [1372, 1573],\r\n# [1381, 1620],\r\n# [1382, 1594],\r\n# [1393, 1599],\r\n# [1395, 1592],\r\n# [1397, 1596],\r\n# [1400, 1563],\r\n# [1400, 1592],\r\n# [1402, 1561],\r\n# [1403, 1544],\r\n# [1403, 1554],\r\n# [1404, 1560],\r\n# [1405, 1603],\r\n# [1407, 1586],\r\n# [1409, 1563],\r\n# [1409, 1590],\r\n# [1409, 1596],\r\n# [1410, 1597],\r\n# [1411, 1556],\r\n# [1411, 1599],\r\n# [1420, 1577],\r\n# [1797, 2667],\r\n# [2151, 2318],\r\n# [2293, 2347],\r\n# [2297, 2351],\r\n# [2297, 2368],\r\n# [2301, 2335],\r\n# [2301, 2381],\r\n# [2306, 2371],\r\n# [2306, 2376],\r\n# [2309, 2416],\r\n# [2309, 2424],\r\n# [2317, 2363],\r\n# [2318, 2371],\r\n# [2319, 2412],\r\n# [2321, 2425],\r\n# [2326, 2366],\r\n# [2329, 2401],\r\n# [2383, 2601],\r\n# [2687, 2636],\r\n# [2710, 2731],\r\n# [2718, 2689],\r\n# [2810, 2597],\r\n# [2968, 2457],\r\n# [2970, 2442],\r\n# [3004, 2684],\r\n# [3010, 2413],\r\n# [3070, 2515],\r\n# [3075, 2524],\r\n# [3087, 2669],\r\n# [3209, 2529],\r\n# [3300, 2524],\r\n# [3330, 2613],\r\n# [3331, 2514],\r\n# [3347, 2381],\r\n# [3465, 2568],\r\n# [3888, 2430],\r\n# [3942, 1891],\r\n# [3942, 1893],\r\n# [3950, 1890],\r\n# [4227, 2576],\r\n# [4321, 98],\r\n# [4420, 497],\r\n# [4420, 500],\r\n# [4421, 500],\r\n# [4496, 619],\r\n# [4530, 814],\r\n# [4721, 859],\r\n# [4723, 858],\r\n# [4770, 952],\r\n# [4822, 3101],\r\n# [4864, 3195],\r\n# [4923, 155],\r\n# [4941, 548],\r\n# [4942, 549],\r\n# [4978, 2675],\r\n# [4993, 882],\r\n# [5112, 3145],\r\n# [5141, 625],\r\n# [5149, 736],\r\n# [5185, 643],\r\n# [5217, 3420],\r\n# [5225, 3391],\r\n# [5226, 3386],\r\n# [5227, 3673],\r\n# [5237, 3260],\r\n# [5299, 4207],\r\n# [5308, 3709],\r\n# [5320, 3857],\r\n# [5328, 3750],\r\n# [5359, 2744],\r\n# [5365, 2847],\r\n# [5372, 2779],\r\n# [5388, 2603],\r\n# [5389, 3079],\r\n# [5392, 2871],\r\n# [5399, 2879],\r\n# [5416, 2895],\r\n# [5424, 3085],\r\n# [5428, 3107],\r\n# [5435, 2580],\r\n# [5457, 3375],\r\n# [5461, 3093],\r\n# [5466, 3252],\r\n# [5466, 3254],\r\n# [5472, 3356],\r\n# [5478, 671],\r\n# [5483, 3150],\r\n# [5485, 3670],\r\n# [5487, 3672],\r\n# [5510, 3433],\r\n# [5513, 3107],\r\n# [5537, 3010],\r\n# [5537, 3012],\r\n# [5579, 2977],\r\n# [5755, 1061]], dtype=int32),\r\n# (32,\r\n# 27,\r\n# 18): array([[ 3, 3240],\r\n# [ 3, 3241],\r\n# [ 12, 3349],\r\n# ...,\r\n# [6622, 2844],\r\n# [6622, 2854],\r\n# [6622, 2865]], dtype=int32),\r\n# (24,\r\n# 17,\r\n# 8): array([[ 669, 1723],\r\n# [ 670, 1722],\r\n# [ 781, 3120],\r\n# ...,\r\n# [6622, 4522],\r\n# [6622, 4523],\r\n# [6622, 4524]], dtype=int32),\r\n# (53,\r\n# 58,\r\n# 56): array([[ 2, 4523],\r\n# [ 2, 4524],\r\n# [ 4, 4522],\r\n# ...,\r\n# [5906, 1969],\r\n# [5908, 1246],\r\n# [6057, 2862]], dtype=int32),\r\n# (52,\r\n# 57,\r\n# 55): array([[ 1, 4524],\r\n# [ 49, 4035],\r\n# [ 52, 4030],\r\n# ...,\r\n# [6040, 2868],\r\n# [6049, 2868],\r\n# [6058, 2863]], dtype=int32),\r\n# (62,\r\n# 67,\r\n# 65): array([[ 0, 4523],\r\n# [ 50, 4037],\r\n# [ 52, 4033],\r\n# ...,\r\n# [5903, 1973],\r\n# [5904, 1952],\r\n# [6041, 2868]], dtype=int32)})\r\n\r\n\r\n```\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Detects colors in images 8 x faster than Numpy / Uses Cython - returns a dict",
"version": "0.10",
"project_urls": {
"Homepage": "https://github.com/hansalemaos/locate_pixelcolor_cython_multi_auto_compile"
},
"split_keywords": [
"cython",
"compile",
"automatic",
"rgb",
"color",
"search"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7040aa720fa51a7393528a3de531b789ac5305564e94a70b0a3bcf979ffe45f6",
"md5": "b45015c08426ab793440d5fce722cca7",
"sha256": "423adca4eb605815f9e477e6ab21f9509f9f0b19015778475e5bc81f70fd2405"
},
"downloads": -1,
"filename": "locate_pixelcolor_cython_multi_auto_compile-0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b45015c08426ab793440d5fce722cca7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 27346,
"upload_time": "2023-09-19T22:01:09",
"upload_time_iso_8601": "2023-09-19T22:01:09.021613Z",
"url": "https://files.pythonhosted.org/packages/70/40/aa720fa51a7393528a3de531b789ac5305564e94a70b0a3bcf979ffe45f6/locate_pixelcolor_cython_multi_auto_compile-0.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "96a7bb3848f94de00e6edd1f14db0b5e9b57538a2ee165cc94dfe15776430a04",
"md5": "2b61b4623401717c8f09233759251b67",
"sha256": "d216120c78d1a184a448c422658d58ec70bda6003b90339bcc36c1cf4060f538"
},
"downloads": -1,
"filename": "locate_pixelcolor_cython_multi_auto_compile-0.10.tar.gz",
"has_sig": false,
"md5_digest": "2b61b4623401717c8f09233759251b67",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27632,
"upload_time": "2023-09-19T22:01:11",
"upload_time_iso_8601": "2023-09-19T22:01:11.253121Z",
"url": "https://files.pythonhosted.org/packages/96/a7/bb3848f94de00e6edd1f14db0b5e9b57538a2ee165cc94dfe15776430a04/locate_pixelcolor_cython_multi_auto_compile-0.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-19 22:01:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hansalemaos",
"github_project": "locate_pixelcolor_cython_multi_auto_compile",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "locate-pixelcolor-cython-multi-auto-compile"
}