paddleocr识别并按行输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | from paddleocr import PaddleOCR # 初始化OCR引擎 ocr = PaddleOCR(use_angle_cls = True , lang = "ch" ) # 使用中文模型 # 对图像进行OCR识别 img_path = './imgs/img_3.png' result = ocr.ocr(img_path, cls = True ) # 按y坐标对文本块进行排序 sorted_result = sorted (result, key = lambda x: x[ 0 ][ 1 ]) # 假设每个元素是(bbox, text)的元组 # 初始化行列表 rows = [] current_row = [] last_y = None y_threshold = 10 # 行的y坐标差异阈值 for line in sorted_result: for node in line: bbox, text = node y1, y2 = bbox[ 1 ][ 1 ], bbox[ 3 ][ 1 ] if last_y is None or y1 - last_y > y_threshold: # 如果这是第一行或与前一行有足够的垂直距离,则开始新行 if current_row: rows.append(current_row) current_row = [(bbox, text)] last_y = y1 else : # 否则,将文本块添加到当前行 current_row.append((bbox, text)) # 不要忘记添加最后一行(如果有的话) if current_row: rows.append(current_row) # 输出结果 for idx, row in enumerate (rows, start = 1 ): print (f "Row {idx-1}:" ) for bbox, text in row: print (f " Text: {text}, Box: {bbox}" ) |
qq:505645074
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-07-19 分布式架构3:MySQL集群(Mysql Cluster7.5.5)
2021-07-19 分布式架构1:Nginx实现负载均衡