import folder_paths import json import cv2 import easyocr import os import logging import numpy as np import torch from PIL import Image, ImageDraw, ImageFont ##代码搬运自easyocr 一点点小小的修改 logger = logging.getLogger("ComfyUI-EasyOCR") model_dir_name = "EasyOCR" lang_list = { "English": "en", "简体中文": "ch_sim", "繁體中文": "ch_tra", "العربية": "ar", "Azərbaycan": "az", "Euskal": "eu", "Bosanski": "bs", "Български": "bg", "Català": "ca", "Hrvatski": "hr", "Čeština": "cs", "Dansk": "da", "Nederlands": "nl", "Eesti": "et", "Suomi": "fi", "Français": "fr", "Galego": "gl", "Deutsch": "de", "Ελληνικά": "el", "עברית": "he", "हिन्दी": "hi", "Magyar": "hu", "Íslenska": "is", "Indonesia": "id", "Italiano": "it", "日本語": "ja", "한국어": "ko", "Latviešu": "lv", "Lietuvių": "lt", "Македонски": "mk", "Norsk": "no", "Polski": "pl", "Português": "pt", "Română": "ro", "Русский": "ru", "Српски": "sr", "Slovenčina": "sk", "Slovenščina": "sl", "Español": "es", "Svenska": "sv", "ไทย": "th", "Türkçe": "tr", "Українська": "uk", "Tiếng Việt": "vi", } def get_lang_list(): result = [] for key, value in lang_list.items(): result.append(key) return result def get_classes(label): label = label.lower() labels = label.split(",") result = [] for l in labels: for key, value in lang_list.items(): if l == value: result.append(value) break return result def get_classes2(label): label = label.lower() labels = label.split(",") result = [] for l in labels: for key, value in lang_list.items(): if l == key: result.append(value) break return result def plot_boxes_to_image(image_pil, tgt,grow_w,min_h,max_h): H, W = tgt["size"] result = tgt["result"] res_mask = [] res_image = [] box_color = (255, 0, 0) # Red color for the box text_color = (255, 255, 255) # White color for the text draw = ImageDraw.Draw(image_pil) # Get the current file path and use it to create a relative path to the font file current_file_path = os.path.dirname(os.path.abspath(__file__)) font_path = os.path.join(current_file_path, "../docs", "PingFangRegular.ttf") font_size = 20 #print(font_path) font = ImageFont.truetype(font_path, font_size) labelme_data = { "version": "4.5.6", "flags": {}, "shapes": [], "imagePath": None, "imageData": None, "imageHeight": H, "imageWidth": W, } mask = np.zeros((H, W, 1), dtype=np.uint8) for item in result: formatted_points, label, threshold = item x1, y1 = formatted_points[0] x2, y2 = formatted_points[2] threshold = round(threshold, 2) if abs(y1-y2) > min_h and abs(y1-y2)