Графические примитивы OpenCV в Python
Средствами библиотеки OpenCV возможно, не только редактировать изображение или фотографии, но и добавлять к ним новые графические элементы. Давайте для начала попробуем нарисовать простую линию на изображении.
Для этого:
# импортируем модули
import cv2;
import numpy as np # (установка pip install numpy)
# создадим переменную для получения нашего изображения
# теперь можно вставлять любое изображение с одноименной директории.
img = cv2.imread("C:/путь к изображению"+input())
# создание черного холста средствами библиотеки numpy
img = np.zeros([5012,5012,3], np.uint8)
Следующим шагом создаем переменную с именем img:
img = cv2.line(img,(-1000,0),(655,655),(10,255,0),10)
Здесь мы вызвали метод line, который и будет рисовать линию поверх нашего изображения. Аргументами данного метода являются:
- Само изображение img
- Координаты начала линии (x,y)
- Конец линии (x,y)
- Цвет в формате RGB т.е (255, 0, 0) линия будет красной и т.д
- Толщина линии здесь 10px
Для линии в виде стрелы вместо метода line передаем arrowedLine:
img = cv2.arrowedLine(img,(0,655),(255,255),(255,0,0),10)
# нарисуем четырехугольник
# метод rectangle создает четырехугольник по координатам диагональной линии
# (384,0)и(510,128) начало и конец координат.
img = cv2.rectangle(img,(384,0),(510,128),(0,0,255),10)
# Если же объект имеет овальную форму то можно обвести его кругом, а чтобы его создать
# Первый аргумент есть изображение
# Второй аргумент координаты центральной точки нашего круга.
# Третий радиус, и далее идет цвет в RGB и флаг со значением 1 рисует круг пустым при -1 круг будет закрашен.
img = cv2.circle(img,(447,63),67,(0,255,0),1)
# Также на сам объект можно поместить надпись, для начала создадим переменную font и передадим ей значение из вариантов шрифта:
font = cv2.FONT_HERSHEY_SIMPLEX
# которую затем мы передадим в метод putText:
img = cv2.putText(img,"Привет, User",(10,500),font,4,(0,255,255),10,cv2.LINE_AA)
# здесь значение 4 есть размер шрифта, а 10 его толщина, (10, 500) являются координатами.
# Не забудьте добавить в конце
print(img) для вывода массива пикселей изображения
cv2.imshow("image", img) # вывод самого изображения
k = cv2.waitKey(0)
cv2.destroyAllWindows()
Таким образом, вот так просто можно рисовать графические примитивы в Python.
-
- Михаил Русаков
Комментарии (1):
Интересная статья. Очень.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.