检测图像中的文本位置并在Python中裁剪

时间:2019-09-22 11:39:12

标签: python python-3.x image-processing python-imaging-library crop

我有这张照片 Text in an image

我想检测该文本的位置,并仅将图像聚焦在该文本上。

这是我的代码:

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 :(得分:0)

您可以使用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

答案 1 :(得分:-1)

您可以使用基于深度学习的模型“ EAST”来检测图像上的文本。 OpenCV的EAST文本检测器基于新颖的架构和培训模式。能够

(1)在720p图像上以13 FPS几乎实时运行

(2)获得最新的文本检测准确性。请参见以下链接以供参考:https://www.pyimagesearch.com/2018/08/20/opencv-text-detection-east-text-detector/