Рубрики
Без рубрики

Текстовое наложение с питоном

Питон, изображение. Tagged с Python, изображение.

Вы можете наложить текст на изображениях. Это довольно просто. Один из способов с OpenCV (CV2), модулем компьютерного зрения. Но это довольно большой модуль, возможно, лучше использовать PIL или что -то в этом роде для этой задачи.

Так скажем, вы идете с OpenCV. Сложная часть – установить модуль OpenCV. Некоторые гиды рекомендуют компилировать весь модуль.

Установите на Ubuntu

На Ubuntu есть неофициальный модуль, который вы можете установить из репозитория, проблема с этим заключается в том, что он не работает с Python 3.6.

В любом случае, после установки вы можете запустить код.

#!/usr/bin/python3
# coding=utf-8
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont

def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    if (isinstance(img, numpy.ndarray)): 
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
        draw = ImageDraw.Draw(img) 
        fontStyle = ImageFont.truetype( "FreeSans.ttf", textSize, encoding="utf-8") 
        draw.text((left, top), text, textColor, font=fontStyle)
        return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

if __name__ == '__main__':
    src = cv2.imread('img1.jpg')
    cv2.imshow('src',src)
    cv2.waitKey(0)

    img = cv2ImgAddText(src, "Python programmers taking a walk", 10, 35, (255, 255 , 255), 20)
    cv2.imshow('show', img)
    if cv2.waitKey(0) & 0xFF == ord('q'):
        cv2.destroyAllWindows()

Изображение img1.jpg может быть любому входному изображению. Я выбрал это:

Цветовое наложение текста белое (255,255,255). Эти цифры составляют от 0 до 255 для цветных каналов.

    img = cv2ImgAddText(src, "Python programmers taking a walk", 10, 35, (255, 255 , 255), 20)

Затем:

Ссылки по теме:

Оригинал: “https://dev.to/petercour/text-overlay-with-python-4ce5”