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

如何修改指定代码实现文本Bounding Box定位及白底文本提取

文本Bounding Box绘制与提取实现

实现步骤

  1. 读取图像并转灰度,通过二值化反转处理突出深色背景上的白色文本
  2. 用Tesseract OCR检测文本位置,获取每个文本块的Bounding Box信息
  3. 在原图上绘制红色边框标记文本区域
  4. 提取每个文本区域,粘贴到白色背景画布上

完整代码

import cv2
import pytesseract
import numpy as np
from pytesseract import Output

# 若Tesseract未加入系统环境变量,手动指定安装路径
# pytesseract.pytesseract.tesseract_cmd = r'你的Tesseract安装路径\tesseract.exe'

def handle_text_image(img_path):
    # 读取目标图片
    img = cv2.imread(img_path)
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    # 二值化反转,适配黑底白字场景
    _, binary_img = cv2.threshold(gray_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
    
    # 获取OCR检测的详细数据
    ocr_data = pytesseract.image_to_data(binary_img, output_type=Output.DICT)
    box_count = len(ocr_data['text'])
    
    # 绘制Bounding Box到原图
    marked_img = img.copy()
    for i in range(box_count):
        # 过滤无效文本(空内容或置信度低于60的结果)
        if int(ocr_data['conf'][i]) > 60 and ocr_data['text'][i].strip():
            x, y, w, h = ocr_data['left'][i], ocr_data['top'][i], ocr_data['width'][i], ocr_data['height'][i]
            cv2.rectangle(marked_img, (x, y), (x+w, y+h), (0, 0, 255), 2)
    
    # 提取文本到白色背景
    white_bg = 255 * np.ones_like(img)
    for i in range(box_count):
        if int(ocr_data['conf'][i]) > 60 and ocr_data['text'][i].strip():
            x, y, w, h = ocr_data['left'][i], ocr_data['top'][i], ocr_data['width'][i], ocr_data['height'][i]
            # 截取文本区域
            text_area = img[y:y+h, x:x+w]
            # 粘贴到白色背景对应位置
            white_bg[y:y+h, x:x+w] = text_area
    
    # 保存结果
    cv2.imwrite('带边框标记的图片.jpg', marked_img)
    cv2.imwrite('白背景提取文本.jpg', white_bg)
    
    # 可选:显示结果窗口
    cv2.imshow('标记后的图片', marked_img)
    cv2.imshow('白背景文本', white_bg)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 调用处理目标图片
handle_text_image('W2LeK.jpg')

注意事项

  • 用THRESH_BINARY_INV反转颜色,是为了将黑底白字转换为白底黑字,匹配Tesseract的默认识别偏好,提升检测准确率
  • 置信度阈值可根据实际识别效果调整,数值越高过滤掉的低质量结果越多
  • 如果文本存在倾斜,可额外加入旋转矫正步骤,进一步优化定位效果

依赖安装

先安装Python库:

pip install opencv-python pytesseract numpy

再安装Tesseract OCR引擎,根据自身系统下载对应版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:16:08