盒子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