diff --git "a/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" "b/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" index 97024d105ff86033857953b9fbe9031e3138f29a..0eb00cd1efc218ff72de7e1a7747ebd1154caff0 100644 --- "a/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" +++ "b/applications/PCB\345\255\227\347\254\246\350\257\206\345\210\253/gen_data/gen.py" @@ -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) diff --git a/ppocr/data/imaug/rec_img_aug.py b/ppocr/data/imaug/rec_img_aug.py index 88d604c1d84cdb979baad64132284feb94a0a256..9780082f1cc3629c7b05a24747537d473d2a42a4 100644 --- a/ppocr/data/imaug/rec_img_aug.py +++ b/ppocr/data/imaug/rec_img_aug.py @@ -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): diff --git a/ppocr/utils/visual.py b/ppocr/utils/visual.py index aa7760a1712f827e296600f791769eac8b2ede88..9108a3728143e0ef0a0d6705e4cc701ab9588394 100644 --- a/ppocr/utils/visual.py +++ b/ppocr/utils/visual.py @@ -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)], diff --git a/ppstructure/utility.py b/ppstructure/utility.py index e51fdf0d74ad8c21c0467e7e830e2b766ef89829..7892376a824af7b7f43847d7bd6ee4498177a6c5 100644 --- a/ppstructure/utility.py +++ b/ppstructure/utility.py @@ -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)], diff --git a/requirements.txt b/requirements.txt index 9d56043a3fde89c038c8bd6d5c87ce3dc2788b67..a5a022738c5fe4c7430099a7a1e41c1671b4ed15 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,4 +15,4 @@ premailer openpyxl attrdict PyMuPDF<1.21.0 -Pillow>=10.0.0 +Pillow diff --git a/tools/infer/predict_rec.py b/tools/infer/predict_rec.py index 44232c4bdf0d44ad8dde377852e72da3927433f3..9dd33dc7b68e05cc218a9a0746cb58ccb5a8ebb2 100755 --- a/tools/infer/predict_rec.py +++ b/tools/infer/predict_rec.py @@ -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)) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 31630c0c191b0da1a9122ae7eca26bc098146f50..4b58cb4ef3f3f169e4799840dcd26adb275861a0 100644 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -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")