Уведомления

Группа в Telegram: @pythonsu

#1 Март 13, 2014 14:36:04

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

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

Помогите пожалуйста найти на изображении прямоугольники и вывести их координаты. Знаю вроде можно это сделать с помощью opencv, но работающего примера найти не смогла, а сама написать и подавно.
Надеюсь только на вашу помощь, очень нужно!

P.S пробовала вот этот пример https://github.com/Itseez/opencv/blob/master/samples/python2/squares.py, вылезла ошибка ValueError: need more than 2 values to unpack

Отредактировано masha (Март 13, 2014 20:29:47)

Офлайн

#2 Март 14, 2014 14:45:14

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

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

пример изображения! пересекаються ли стороны прямоугольников с чем-либо?



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Март 14, 2014 17:14:36

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

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

terabayt Вот пример изображения http://firepic.org/images/2014-03/14/7wyofiy5risk.jpg
Я немного разобралсь, код находящийся по ссылке https://github.com/Itseez/opencv/blob/master/samples/python2/squares.py как выяснилось работает, просто нужно было удалить одну переменную.
Данный код находит прямоугольники, только теперь 1 проблема, я не знаю как его переделать, чтобы он выдавал мне координаты всех найденных прямоугольников.

Отредактировано masha (Март 14, 2014 19:52:01)

Офлайн

#4 Март 16, 2014 22:55:21

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

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

...
if __name__ == '__main__':
    from glob import glob
    for fn in glob('./rm.jpg'):
        img = cv2.imread(fn)
        squares = find_squares(img)
        print squares # ------- координаты!!!
        cv2.drawContours( img, squares, -1, (0, 255, 0), 3 )
        cv2.imshow('squares', img)
        ch = 0xFF & cv2.waitKey()
        if ch == 27:
            break
    cv2.destroyAllWindows()



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Март 16, 2014 22:56:05)

Офлайн

#5 Март 17, 2014 04:55:39

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

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

terabayt
Да проблема в том, что там координаты всех прямоугольников в перемешку даны и плюс, ещё в немного странном виде. То есть координаты множества точек границе объекта. А мне нужно из них как-то сделать координаты левого верхнего угла, правого верхнего, левого нижнего и правого нижнего.

Ещё непонятно, как посчитать количество найденных прямоугольников. Потому что в возвращаемом списке координаты одних и тех-же прямоугольников даны по несколько раз.

Отредактировано masha (Март 17, 2014 17:46:27)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version