Чтобы написать текст на изображении с помощью библиотеки OpenCV Python, используйте метод putText(). Использование функции показано в следующем примере.
import numpy as np
import cv2
image = cv2.imread('sample.png',cv2.IMREAD_UNCHANGED)
position = (10,50)
cv2.putText(
image, #numpy array on which text is written
"Python Examples", #text
position, #position at which writing has to start
cv2.FONT_HERSHEY_SIMPLEX, #font family
1, #font size
(209, 80, 0, 255), #font color
3) #font stroke
cv2.imwrite('output.png', image)
Как видно из приведенного выше примера, вы можете предоставить:
- изображение, на котором можно написать текст;
- текст, который вы хотите написать на изображении;
- позиция: расстояние по горизонтальной и вертикальной осям от верхнего левого угла изображения;
- семейство шрифтов;
- размер шрифта;
- цвет шрифта;
- ширина штриха шрифта.
В приведенном выше примере мы предоставили образец изображения и написали на нем текст. Мы записали выходное изображение в файл. Ниже приведены входные и выходные изображения.


Текст в центре изображения
Если вам известна форма (ширина, высота) текста, который вы пишете на изображении, вы можете разместить его по центру изображения.
Примерная форма текста в приведенном выше примере – (268, 36). Возможно, вам придется найти форму вашего конкретного текста с помощью Paint или другого приложения.
import numpy as np
import cv2
image = cv2.imread('sample.png',cv2.IMREAD_UNCHANGED)
position = ((int) (image.shape[1]/2 - 268/2), (int) (image.shape[0]/2 - 36/2))
cv2.putText(
image, #numpy array on which text is written
"Python Examples", #text
position, #position at which writing has to start
cv2.FONT_HERSHEY_SIMPLEX, #font family
1, #font size
(209, 80, 0, 255), #font color
3) #font stroke
cv2.imwrite('output.png', image)
Выходное изображение будет:
