Найти - Пользователи
Полная версия: Найти пиксел на изображении
Начало » Python для экспертов » Найти пиксел на изображении
1
dianar
Привет.
Очень легко получить 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('НАЙДЕНО')

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

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

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

тут
vic57
Vigi +1
ежли поднапрячься - через ctypes в С завернуть
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB