Рендеринг текста на изображении с неравномерным уровнем насыщенности

Как визуализировать текст с неравномерным уровнем насыщенности, как на втором изображении? (Шрифт двух изображений отличается, но уровень насыщенности вызывает беспокойство.)

введите здесь описание изображения

введите здесь описание изображения

Мой исходный код

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

from random import seed
from random import randint
import numpy as np
import os.path

#Returns the text size in terms of width and height.
def getSize(txt, font):
    testImg = Image.new('RGB', (1, 1))
    testDraw = ImageDraw.Draw(testImg)
    return testDraw.textsize(txt, font)

text = 'lemper'
fontname = 'arial.ttf'
fontsize= 25

font = ImageFont.truetype(fontname, fontsize)
width, height = getSize(text, font)

#Creates an image with white background of constant size.
img = Image.new('RGB', (100, 100), 'white')
d = ImageDraw.Draw( img)
d.text(get_xy_coordinates(text, font), text, fill='black', font=font)             
img.save("text_images/1.png")

person alyssaeliyah    schedule 12.03.2020    source источник
comment
вы просто хотели бы изменить насыщенность или вместе со шрифтом и другим, так как оба изображения не совпадают?   -  person Naga kiran    schedule 12.03.2020
comment
@NagaKiran Шрифт двух изображений отличается, но уровень насыщенности вызывает беспокойство.   -  person alyssaeliyah    schedule 12.03.2020
comment
Насыщенность — это яркость цвета, а черный (а также белый и оттенки серого) по определению являются полностью ненасыщенными, т. е. не имеют насыщенности. Так что я думаю, что это, возможно, неправильное слово. Вы можете напечатать текст темно-серым цветом вместо черного. Вы можете напечатать текст с частичной непрозрачностью, чтобы часть неровного фона была видна.   -  person Mark Setchell    schedule 12.03.2020
comment
Пожалуйста, свяжитесь со мной, если вам нужен настраиваемый механизм распознавания текста   -  person Naga kiran    schedule 12.03.2020


Ответы (1)


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

Ознакомьтесь с библиотекой imgaug, добавьте или удалите соответствующие методы обработки изображений в зависимости от ваших потребностей.

import numpy as np
import cv2
import imgaug.augmenters as iaa


a = cv2.imread('fontimage.jpg')[None,:,:,:]
# Standard scenario: You have N RGB-images and additionally 21 heatmaps per

images = a.copy()
heatmaps = np.random.random(size=(1, 64, 64, 1)).astype(np.float32)

seq = iaa.Sequential([
    # Comment or uncomment the filters on your preference
    #iaa.GaussianBlur((0,3.0)),
    iaa.MultiplyHueAndSaturation((0.5, 1.5), per_channel=True),
    iaa.MultiplySaturation((0.1, 0.4)),
    iaa.SaltAndPepper(0.2)
])

images_aug, heatmaps_aug = seq(images=images, heatmaps=heatmaps)

Вне:

Преобразованное изображение

person Naga kiran    schedule 12.03.2020