You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何分割PaddleOCR检测边界框供Pytesseract逐块提取德语文本

PaddleOCR检测框裁切对接Pytesseract逐块识别方案

你已经通过PaddleOCR拿到了全量文本检测框坐标,不需要基于绘制完边界框的结果图做裁切,直接在原始加载的RGB图像上按坐标切块即可对接Pytesseract,核心逻辑和实现如下:

  • 坐标转换:PaddleOCR输出的单个文本框为4个顶点的坐标列表,格式为[[x1,y1], [x2,y2], [x3,y3], [x4,y4]],对应检测出的文本四边形四个角点。PIL图像的crop裁切方法需要传入(左边界, 上边界, 右边界, 下边界)的正矩形参数,取4个点中x坐标的最小、最大值,y坐标的最小、最大值即可得到对应裁切区域,建议额外外扩2-3像素边距,避免裁掉文本边缘导致识别错误。
  • 逐块识别:裁切得到的单个文本块图像可直接传入Pytesseract,指定德语语言包即可完成识别,可根据实际识别效果对小块做灰度化、二值化预处理,进一步提升准确率。
  • 倾斜场景优化:如果待识别图像的文本存在明显倾斜,正矩形裁切会带入多余背景干扰识别,可先通过透视变换将倾斜的四边形文本块拉正后再送入Pytesseract,识别率会有明显提升。

基础实现代码(适配无明显倾斜的常规场景)

在你原有代码的基础上,追加以下内容即可运行:

import pytesseract

# 若tesseract未加入系统环境变量,手动取消注释并指定本地安装路径
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 裁切边距,单位:像素,避免裁断文字边缘
padding = 3
ocr_final_result = []

for single_box in boxes:
    # 提取框内所有点的x、y坐标
    x_list = [point[0] for point in single_box]
    y_list = [point[1] for point in single_box]
    # 计算裁切矩形坐标,加上边距
    left = int(min(x_list)) - padding
    top = int(min(y_list)) - padding
    right = int(max(x_list)) + padding
    bottom = int(max(y_list)) + padding
    # 修正坐标,防止越界到图像范围外
    left = max(left, 0)
    top = max(top, 0)
    right = min(right, image.width)
    bottom = min(bottom, image.height)
    
    # 裁切出单个文本块
    text_crop = image.crop((left, top, right, bottom))
    # 可选:图像预处理,比如转灰度图
    # text_crop = text_crop.convert('L')
    
    # 调用pytesseract识别德语文本,需提前安装tesseract德语语言包
    block_text = pytesseract.image_to_string(text_crop, lang='deu').strip()
    ocr_final_result.append({
        "bbox": single_box,
        "content": block_text
    })

# 打印所有块的识别结果
for block in ocr_final_result:
    print(f"检测框坐标:{block['bbox']}")
    print(f"识别文本:{block['content']}\n")

注意事项:运行前请确保已安装pytesseract依赖,同时将德语语言包deu.traineddata放入tesseract安装目录的tessdata文件夹下,否则会触发语言加载错误。


内容的提问来源于stack exchange,提问作者Atef Chatty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:18:16