Skip to main content

Locate RGB values in a picture! 40x faster than PIL, 5x faster than numpy

Project description

Locate RGB values in a picture! 40 x faster than PIL, 5 x faster than numpy

pip install locate-pixelcolor
from locate_pixelcolor import search_colors



# Let's use a 4525 x 6623 x 3 picture https://www.pexels.com/pt-br/foto/foto-da-raposa-sentada-no-chao-2295744/

import cv2

path = r"C:\Users\Gamer\Documents\Downloads\pexels-alex-andrews-2295744.jpg"

img = cv2.imread(path)

exa1 = search_colors(pic=img, colors=[(255, 255, 255)])



%timeit search_colors(pic=img, colors=[(255, 255, 255)])

96.8 ms ± 534 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)



# You can search for up to 9 different colors at the same time:

search_colors(pic=img, colors=[(255, 255, 255), (0, 0, 0)])



%timeit search_colors(pic=img, colors=[(255, 255, 255),(0, 0, 0)])

132 ms ± 382 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)



# Let's compare it with PIL



from PIL import Image

img = Image.open(path)

img = img.convert("RGB")

datas = img.getdata()



def get_coords_with_pil(col):

    newData = []

    for item in datas:

        if item[0] == col[0] and item[1] == col[1] and item[2] == col[2]:

            newData.append(item)

    return newData



# %timeit get_coords_with_pil(col=(255, 255, 255))

# 3.34 s ± 51.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

locate_pixelcolor-0.10.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

locate_pixelcolor-0.10-py3-none-any.whl (5.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page