Уведомления

Группа в Telegram: присоединиться

#1 Июль 4, 2018 04:53:04

dianar
Зарегистрирован: 2018-02-16
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти пиксел на изображении

Привет.
Очень легко получить RGB цвет пикселя, указав координаты.

Вопрос: как получить координаты, указав RGB значение?
Я пришёл с следующему решению и оно работает медленно:

 from PIL import Image
img = Image.open('image.jpg') # Изображение на котором ищу пиксель
pixels = img.load()
for y in range(img.size[1]):
    for x in range(img.size[0]):
        if pixels[x, y] == (235, 187, 7): # Цвет который ищу
            print('НАЙДЕНО')

Подскажите как я могу ускорить поиск?

Офлайн

#2 Июль 4, 2018 05:46:47

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 3189
Репутация: +  175  -
Профиль   Отправить e-mail  

Найти пиксел на изображении

Во первых непонятно как вы будете это использовать. У вас много изображений и вы в каждом будете искать пиксел или в одном много раз будете искать разные пикселы? Во втором случае можно заранее создать словарь пиксел -> коорината. Первый вариант можно ускорить перейдя к компилированному варианту первая ссылка в гугле https://stackoverflow.com/questions/12138339/finding-the-x-y-indexes-of-specific-r-g-b-color-values-from-images-stored-in Но все равно нужен перебор всех пикселей.
Во вторых постановка выглядит неправильно. Где гарантия что он есть и что он один такой на картинке?

p.s.
В такой постановке как вы ее поставили задача не решается эффективно. Вполне вероятно что вами неправильно выбран алгоритм решения объемлющей задачи. Напишите какова конечная цель ваших манипуляций.



Отредактировано doza_and (Июль 4, 2018 05:49:02)

Офлайн

#3 Июль 25, 2018 08:22:35

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 127
Репутация: +  6  -
Профиль   Отправить e-mail  

Найти пиксел на изображении

dianar
Я пришёл с следующему решению и оно работает медленно:
а сколько медленно ?

тут

Отредактировано Vigi (Июль 25, 2018 08:46:40)

Офлайн

#4 Июль 25, 2018 09:53:53

vic57
Зарегистрирован: 2015-07-07
Сообщения: 811
Репутация: +  116  -
Профиль   Отправить e-mail  

Найти пиксел на изображении

Vigi +1
ежли поднапрячься - через ctypes в С завернуть

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version