Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import PIL | |
| import numpy as np | |
| from PIL import Image, ImageDraw, ImageFont | |
| from translate import Translator | |
| from paddleocr import PaddleOCR | |
| ocr = PaddleOCR(use_angle_cls=True, lang='en') | |
| def translate_text(text, src_lang='en', dest_lang='vi'): | |
| translator = Translator(to_lang=dest_lang, from_lang=src_lang) | |
| translation = translator.translate(text) | |
| return translation | |
| def process_image(image, size): | |
| # Convert the uploaded image data to a PIL Image | |
| result = ocr.ocr(image, cls=True) | |
| image = Image.open(image).convert('RGB') | |
| draw = PIL.ImageDraw.Draw(image) | |
| for i, box in enumerate(result[0]): | |
| text = translate_text(box[1][0]) | |
| box = np.array(box[0]).astype(np.int32) | |
| xmin = min(box[:, 0]) | |
| ymin = min(box[:, 1]) | |
| xmax = max(box[:, 0]) | |
| ymax = max(box[:, 1]) | |
| draw.rectangle((xmin, ymin, xmax, ymax), outline="white", fill="white", width=1) | |
| draw.text((xmin, ymin), f"{text}", fill="black", | |
| font=ImageFont.truetype("font/SVN-Arial 2 bold.ttf", size=size)) | |
| # Save the processed image | |
| processed_image_path = 'processed_image.jpg' | |
| image.save(processed_image_path) | |
| return processed_image_path | |
| iface = gr.Interface( | |
| fn=process_image, | |
| inputs=[gr.Image(type="filepath", label="Upload Image"), | |
| gr.Slider(minimum=10, maximum=100, step=5, label="Text Size")], | |
| outputs="image", | |
| title="OCR Translation App", | |
| description="Upload an image and see the processed image with translated text." | |
| ) | |
| if __name__ == "__main__": | |
| iface.launch(share=True) | |