Определить положение текста на изображении и обрезать его в Python - PullRequest
1 голос
/ 22 сентября 2019

У меня есть это изображение Текст на изображении

Я хочу определить это положение текста и обрезать изображение, фокусируясь только на этом тексте.

это мой код:

from PIL import Image 
# Opens a image in RGB mode 
im = Image.open(r"image.jpg") 
# Size of the image in pixels (size of orginal image) 
# (This is not mandatory) 
width, height = im.size 
print(im.size)
# Setting the points for cropped image 
left = 5
top = height / 4
right = 164
bottom = 3 * height / 4
# Cropped image of above dimension 
# (It will not change orginal image) 
im1 = im.crop((left, top, right, bottom)) 
# Shows the image in image viewer 
im1.save("new.jpg")

Этот код работает нормально, но положение текста на изображении не статично.Я хочу, чтобы код автоматически определял положение текста, а затем обрезал его.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Вы можете использовать getbbox(), чтобы получить ограничивающий прямоугольник:

image=Image.open('text.jpg') 
x1,y1,x2,y2=image.getbbox() 
print(x1,y1,x2,y2)   

Выход

16 192 208 216

enter image description here

0 голосов
/ 22 сентября 2019

Вы можете глубокое обучение на основе модели "ВОСТОК", чтобы обнаружить текст на изображениях.Детектор текста OpenCV EAST основан на новой архитектуре и шаблонах обучения.Он способен

(1) работать почти в режиме реального времени со скоростью 13 кадров в секунду на изображениях 720p, а

(2) обеспечивает высокую точность определения текста. См. Эту ссылкудля справки: https://www.pyimagesearch.com/2018/08/20/opencv-text-detection-east-text-detector/.

...