Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2014 04:04:32

Hugger
Зарегистрирован: 2014-05-18
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти прямоугольники на изображении

есть воот такая картинка

Необходимо получить массив всех фиолетовых прямоугольников
вида:

(
[(967, 750), (968, 750), (969, 750), , (967, 759)],
[(973, 749), (973, 750)],
[(978, 749), (987, 760), (988, 760), (989, 760)],
[(991, 749), (992, 749), (992, 750), (991, 750)],
[(996, 749), (997, 749), (996, 758), (996, 759), (996, 760)],
[(1002, 750), (1002, 759)],
)
Своим умом до алгоритма дойти не удалось.

В принципе нужно чисто описания алгоритма, код сам напишу.

ЗЫ. структура итоговых данных тоже не важна. Главное, чтобы она на каждую итерацию отдавала строго по порядку список пикселей одного прямоугольника.

Отредактировано Hugger (Май 18, 2014 04:12:08)

Прикреплённый файлы:
attachment 1.png (283 байта)

Офлайн

#2 Май 18, 2014 08:59:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Найти прямоугольники на изображении

Hugger
Необходимо получить массив всех фиолетовых прямоугольников
там нет фиолетовых прямоугольников

Hugger
Своим умом до алгоритма дойти не удалось.
поставь точно цель



Офлайн

#3 Май 18, 2014 18:15:03

yastreboff
Зарегистрирован: 2014-05-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти прямоугольники на изображении

Я бы, наверное, загнал картинку с помощью PIL в матрицу

im = Image.open('image.gif')
image_pixels = im.convert('RGB')

теперь можно получить цвет любого пиксела

r, g, b = image_pixels.getpixel((1, 1))
print r, g, b
(23, 200, 124)

Ну и теперь простым перебором по оси Х, а потом по оси Y вычислил координаты начала и конца столбиков.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version