盒子ocr检测
This commit is contained in:
45
test_ocr.py
Normal file
45
test_ocr.py
Normal file
@ -0,0 +1,45 @@
|
||||
import cv2
|
||||
import time
|
||||
from pp_onnx.onnx_paddleocr import ONNXPaddleOcr, draw_ocr
|
||||
|
||||
# 优化参数配置,提高速度
|
||||
model = ONNXPaddleOcr(
|
||||
use_angle_cls=True,
|
||||
use_gpu=False,
|
||||
providers=['AzureExecutionProvider'],
|
||||
provider_options=[{'device_id': 0}],
|
||||
det_limit_type='max',
|
||||
)
|
||||
|
||||
def sav2Img(org_img, result, name="./result_img/3.jpg"):
|
||||
from PIL import Image
|
||||
result = result[0]
|
||||
image = org_img[:, :, ::-1]
|
||||
boxes = [line[0] for line in result]
|
||||
txts = [line[1][0] for line in result]
|
||||
scores = [line[1][1] for line in result]
|
||||
im_show = draw_ocr(image, boxes, txts, scores)
|
||||
im_show = Image.fromarray(im_show)
|
||||
im_show.save(name)
|
||||
|
||||
|
||||
# 执行OCR推理
|
||||
img = cv2.imread('./test_img/3.jpg')
|
||||
if img is None:
|
||||
print(f"❌ 未找到图像文件")
|
||||
else:
|
||||
# 图像预处理 - 缩小图像尺寸加速处理
|
||||
h, w = img.shape[:2]
|
||||
max_size = 1080
|
||||
if max(h, w) > max_size:
|
||||
scale = max_size / max(h, w)
|
||||
img = cv2.resize(img, (int(w * scale), int(h * scale)))
|
||||
|
||||
s = time.time()
|
||||
result = model.ocr(img)
|
||||
e = time.time()
|
||||
print(f"total time: {e - s:.3f} 秒")
|
||||
print("result:", result)
|
||||
for box in result[0]:
|
||||
print(box)
|
||||
sav2Img(img, result)
|
||||
Reference in New Issue
Block a user