Python OpenCV cv2 рисования прямоугольника с текстом - PullRequest
0 голосов
/ 13 мая 2019

Я рисую прямоугольник на своем изображении, используя

cv2.rectangle(frame,(x,y),(x1,y1),(0,255,0),2)

Я хотел бы нарисовать прямоугольники с текстовой информацией на них.Как мне это сделать?Есть ли готовые реализации доступны?Или я должен сопоставить верхнюю левую координату прямоугольника и попытаться отобразить другой текстовый элемент cv2 с элементом rect cv2?

Можете ли вы направить меня к любой реализации кода / обходного пути?

PSЯ не хочу использовать object_detection.утилиты визуализации доступны с tf.

enter image description here

Ответы [ 2 ]

2 голосов
/ 13 мая 2019

Вы можете использовать cv2.putText, чтобы нарисовать текстовую информацию поверх прямоугольника.Например, вы можете получить координаты контура, нарисовать прямоугольник и поместить текст поверх него, сдвинув его вверх.

x,y,w,h = cv2.boundingRect(contour)
outlined_image = cv2.rectangle(image, (x, y), (x + w, y + h), (0,255,0), 1)
cv2.putText(outlined_image, 'Fedex', (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (100,255,100), 2)

Вы получите что-то вроде этого

enter image description here

1 голос
/ 13 мая 2019

вам может потребоваться расширить код с помощью функции, которая принимает ваш текст в качестве входных данных, position_x, position_y .., и она будет измерять размер букв и динамически устанавливать ширину прямоугольника на основе этого.

вы можете использовать: cv2.getTextSize (текст, шрифт, font_scale, толщина)

чтобы узнать, сколько пикселей он будет использовать, а затем использовать его для определения ширины прямоугольника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...