我有这张照片 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")
此代码可以正常工作,但是图像中文本的位置不是静态的。 我希望代码自动检测文本的位置,然后裁剪它。
答案 0 :(得分:0)
您可以使用getbbox()
来获取边界框:
image=Image.open('text.jpg')
x1,y1,x2,y2=image.getbbox()
print(x1,y1,x2,y2)
输出
16 192 208 216
答案 1 :(得分:-1)
您可以使用基于深度学习的模型“ EAST”来检测图像上的文本。 OpenCV的EAST文本检测器基于新颖的架构和培训模式。能够
(1)在720p图像上以13 FPS几乎实时运行
(2)获得最新的文本检测准确性。请参见以下链接以供参考:https://www.pyimagesearch.com/2018/08/20/opencv-text-detection-east-text-detector/。