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

基于OpenCV与pytesseract提取图片数字及位置的问题求助

数字识别及位置提取解决方案

问题描述

我需要从附图中提取数字及其相对位置,目前使用Python的pytesseract工具,但最初无识别结果;尝试用OpenCV进行预处理(代码如下)后,仍无法识别单个数字,寻求相关配置或预处理方案的帮助。

image = cv2.imread("plano5.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)[1]
text = pytesseract.image_to_string(thresh,config='--psm 11 --oem 3 -c tessedit_char_whitelist=0123456789')

优化方案

一、图像预处理优化

针对单个数字识别,预处理需强化数字轮廓、消除干扰,可尝试以下步骤:

  • 降噪处理:用高斯模糊或中值滤波去除图像噪点,避免噪点被误判为字符
  • 反转阈值:如果数字是浅色、背景深色,反转图像为黑字白底,匹配Tesseract默认识别逻辑
  • 形态学增强:用闭运算(先膨胀后腐蚀)填补数字内部的断裂,强化轮廓
  • ROI裁剪:如果数字集中在特定区域,提前裁剪图像减少无关区域干扰

二、Tesseract配置调整

原配置的--psm 11适用于稀疏文本场景,单个数字识别需调整PSM模式:

  • 改用--psm 10:强制识别单个字符,匹配你的需求
  • 保留oem 3(混合识别模式)或尝试oem 1(纯LSTM模式)
  • 用image_to_data代替image_to_string,直接获取数字的坐标位置

优化后完整代码

import cv2
import pytesseract

# 读取图像
image = cv2.imread("plano5.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 1. 降噪:高斯模糊去除噪点
blurred = cv2.GaussianBlur(gray, (3, 3), 0)

# 2. 反转阈值:将浅色数字转为黑字白底(若原本是黑字白底可省略)
thresh = cv2.threshold(blurred, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

# 3. 形态学闭运算:填补数字断裂,强化轮廓
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))
processed_img = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)

# Tesseract配置:单个字符识别模式+数字白名单
custom_config = r'--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789'

# 提取数字及位置信息
result_data = pytesseract.image_to_data(processed_img, config=custom_config, output_type=pytesseract.Output.DICT)

# 过滤低置信度结果,输出有效数字和位置
total_boxes = len(result_data['text'])
for idx in range(total_boxes):
    # 置信度>60的结果更可靠,可根据实际情况调整阈值
    if int(result_data['conf'][idx]) > 60:
        digit = result_data['text'][idx]
        x, y, width, height = result_data['left'][idx], result_data['top'][idx], result_data['width'][idx], result_data['height'][idx]
        print(f"识别数字: {digit}, 位置坐标: (x={x}, y={y}), 尺寸: 宽{width}, 高{height}")

额外提示

  • 若数字较大,可调整形态学核的大小(如(3,3))
  • 若图像存在倾斜,可先添加旋转矫正步骤
  • 测试时可将processed_img保存为本地文件,查看预处理效果后再调整参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:33:32