mirror of
https://github.com/PaddlePaddle/PaddleOCR.git
synced 2025-12-27 15:08:17 +00:00
compat_pillow (#10596)
This commit is contained in:
parent
b3f9f681d9
commit
4a91a21245
@ -17,6 +17,7 @@ https://github.com/zcswdt/Color_OCR_image_generator
|
||||
"""
|
||||
import os
|
||||
import random
|
||||
import PIL
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
import json
|
||||
import argparse
|
||||
@ -55,8 +56,11 @@ def get_horizontal_text_picture(image_file, chars, fonts_list, cf):
|
||||
ch_w = []
|
||||
ch_h = []
|
||||
for ch in chars:
|
||||
left, top, right, bottom = font.getbbox(ch)
|
||||
wt, ht = right - left, bottom - top
|
||||
if int(PIL.__version__.split('.')[0]) < 10:
|
||||
wt, ht = font.getsize(ch)
|
||||
else:
|
||||
left, top, right, bottom = font.getbbox(ch)
|
||||
wt, ht = right - left, bottom - top
|
||||
ch_w.append(wt)
|
||||
ch_h.append(ht)
|
||||
f_w = sum(ch_w)
|
||||
@ -102,8 +106,11 @@ def get_vertical_text_picture(image_file, chars, fonts_list, cf):
|
||||
ch_w = []
|
||||
ch_h = []
|
||||
for ch in chars:
|
||||
left, top, right, bottom = font.getbbox(ch)
|
||||
wt, ht = right - left, bottom - top
|
||||
if int(PIL.__version__.split('.')[0]) < 10:
|
||||
wt, ht = font.getsize(ch)
|
||||
else:
|
||||
left, top, right, bottom = font.getbbox(ch)
|
||||
wt, ht = right - left, bottom - top
|
||||
ch_w.append(wt)
|
||||
ch_h.append(ht)
|
||||
f_w = max(ch_w)
|
||||
|
||||
@ -18,6 +18,7 @@ import numpy as np
|
||||
import random
|
||||
import copy
|
||||
from PIL import Image
|
||||
import PIL
|
||||
from .text_image_aug import tia_perspective, tia_stretch, tia_distort
|
||||
from .abinet_aug import CVGeometry, CVDeterioration, CVColorJitter, SVTRGeometry, SVTRDeterioration
|
||||
from paddle.vision.transforms import Compose
|
||||
@ -406,7 +407,7 @@ class GrayRecResizeImg(object):
|
||||
def __init__(self,
|
||||
image_shape,
|
||||
resize_type,
|
||||
inter_type='Image.LANCZOS',
|
||||
inter_type="Image.Resampling.LANCZOS",
|
||||
scale=True,
|
||||
padding=False,
|
||||
**kwargs):
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
import cv2
|
||||
import os
|
||||
import numpy as np
|
||||
import PIL
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
|
||||
|
||||
@ -62,8 +63,13 @@ def draw_box_txt(bbox, text, draw, font, font_size, color):
|
||||
draw.rectangle(bbox, fill=color)
|
||||
|
||||
# draw ocr results
|
||||
left, top, right, bottom = font.getbbox(text)
|
||||
tw, th = right - left, bottom - top
|
||||
if int(PIL.__version__.split('.')[0]) < 10:
|
||||
tw = font.getsize(text)[0]
|
||||
th = font.getsize(text)[1]
|
||||
else:
|
||||
left, top, right, bottom = font.getbbox(text)
|
||||
tw, th = right - left, bottom - top
|
||||
|
||||
start_y = max(0, bbox[0][1] - th)
|
||||
draw.rectangle(
|
||||
[(bbox[0][0] + 1, start_y), (bbox[0][0] + tw + 1, start_y + th)],
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
# limitations under the License.
|
||||
import random
|
||||
import ast
|
||||
import PIL
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
import numpy as np
|
||||
<<<<<<< HEAD
|
||||
@ -137,8 +138,13 @@ def draw_structure_result(image, result, font_path):
|
||||
[(box_layout[0], box_layout[1]), (box_layout[2], box_layout[3])],
|
||||
outline=box_color,
|
||||
width=3)
|
||||
left, top, right, bottom = font.getbbox(region['type'])
|
||||
text_w, text_h = right - left, bottom - top
|
||||
|
||||
if int(PIL.__version__.split('.')[0]) < 10:
|
||||
text_w, text_h = font.getsize(region['type'])
|
||||
else:
|
||||
left, top, right, bottom = font.getbbox(region['type'])
|
||||
text_w, text_h = right - left, bottom - top
|
||||
|
||||
draw_layout.rectangle(
|
||||
[(box_layout[0], box_layout[1]),
|
||||
(box_layout[0] + text_w, box_layout[1] + text_h)],
|
||||
|
||||
@ -15,4 +15,4 @@ premailer
|
||||
openpyxl
|
||||
attrdict
|
||||
PyMuPDF<1.21.0
|
||||
Pillow>=10.0.0
|
||||
Pillow
|
||||
|
||||
@ -158,7 +158,7 @@ class TextRecognizer(object):
|
||||
if self.rec_algorithm == 'ViTSTR':
|
||||
img = image_pil.resize([imgW, imgH], Image.BICUBIC)
|
||||
else:
|
||||
img = image_pil.resize([imgW, imgH], Image.LANCZOS)
|
||||
img = image_pil.resize([imgW, imgH], Image.Resampling.LANCZOS)
|
||||
img = np.array(img)
|
||||
norm_img = np.expand_dims(img, -1)
|
||||
norm_img = norm_img.transpose((2, 0, 1))
|
||||
|
||||
@ -19,6 +19,7 @@ import platform
|
||||
import cv2
|
||||
import numpy as np
|
||||
import paddle
|
||||
import PIL
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
import math
|
||||
from paddle import inference
|
||||
@ -475,7 +476,11 @@ def draw_box_txt_fine(img_size, box, txt, font_path="./doc/fonts/simfang.ttf"):
|
||||
def create_font(txt, sz, font_path="./doc/fonts/simfang.ttf"):
|
||||
font_size = int(sz[1] * 0.99)
|
||||
font = ImageFont.truetype(font_path, font_size, encoding="utf-8")
|
||||
length = font.getlength(txt)
|
||||
if int(PIL.__version__.split('.')[0]) < 10:
|
||||
length = font.getsize(txt)[0]
|
||||
else:
|
||||
length = font.getlength(txt)
|
||||
|
||||
if length > sz[0]:
|
||||
font_size = int(font_size * sz[0] / length)
|
||||
font = ImageFont.truetype(font_path, font_size, encoding="utf-8")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user