| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import requests
- from io import BytesIO
- import base64
- import json
- from PIL import Image, ImageFilter, ImageEnhance
- from config import PROMPT_EXTRACT_ICON, PROMPT_EXTRACT_NAME, PROMPT_EXTRACT_COMPONENTS, PROMPT_EXTRACT_KEYWORD, PROMPT_EXTRACT_PREVENTION, PROMPT_EXTRACT_SUPPLIER
- def image_to_base64(pil_image, image_format="JPEG"):
- """将PIL Image图像转换为Base64编码"""
- buffered = BytesIO()
- pil_image.save(buffered, format=image_format)
- img_byte_array = buffered.getvalue()
- encode_image = base64.b64encode(img_byte_array).decode('utf-8')
- return encode_image
- def resize_image(image, max_size=512):
- """缩放图像尺寸,保持 OCR 质量"""
- width, height = image.size
- max_dim = max(width, height)
- # 如果图像不需要缩小,直接返回
- if max_dim <= max_size:
- return image
- scaling_factor = max_size / max_dim
- new_width = int(width * scaling_factor)
- new_height = int(height * scaling_factor)
- resized = image.resize((new_width, new_height), Image.Resampling.LANCZOS)
- resized = resized.filter(ImageFilter.UnsharpMask(radius=1, percent=120, threshold=3))
- enhancer = ImageEnhance.Contrast(resized)
- resized = enhancer.enhance(1.1)
- return resized
- image = Image.open('./test1.jpg')
- image = resize_image(image)
- image_base64 = image_to_base64(image)
- # response = requests.post(
- # "http://127.0.0.1:8000/api/v1/ocr",
- # json={
- # "image": image_base64,
- # "text": [PROMPT_EXTRACT_ICON, PROMPT_EXTRACT_NAME, PROMPT_EXTRACT_COMPONENTS, PROMPT_EXTRACT_KEYWORD, PROMPT_EXTRACT_PREVENTION, PROMPT_EXTRACT_SUPPLIER]
- # }
- # )
- response = requests.post(
- "https://u475436-9425-5ad0e9a4.gda1.seetacloud.com:6443/api/v1/agent_ocr",
- json={
- "image": image_base64,
- }
- )
- result = response.json()
- print(result['data'])
|