Средствами библиотеки OpenCV возможно, не только редактировать изображение или фотографии, но и добавлять к ним новые графические элементы. Давайте для начала попробуем нарисовать простую линию на изображении.

Графические примитивы 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, который и будет рисовать линию поверх нашего изображения. Аргументами данного метода являются:

  1. Само изображение img
  2. Координаты начала линии (x,y)
  3. Конец линии (x,y)
  4. Цвет в формате RGB т.е (255, 0, 0) линия будет красной и т.д
  5. Толщина линии здесь 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.