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

从柱状图提取数据:柱状图名称与数值匹配难题求助

解决pytesseract提取柱状图名称漏读/误读的方案

图像预处理优化

  • 灰度化:将彩色图像转为灰度图,减少色彩干扰,执行代码:cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  • 二值化:通过阈值处理分离文字与背景,可尝试自适应二值化:cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
  • 去噪:使用中值模糊或高斯模糊消除噪点:cv2.medianBlur(gray, 3)
  • 倾斜校正:若文字存在倾斜,通过霍夫直线检测或轮廓外接矩形校正角度,确保文字水平/垂直

精准定位名称区域

  • 结合已有的霍夫变换柱状图定位结果,推导名称所在区域(如纵向柱状图名称在柱子下方,横向图在柱子左侧)
  • 用轮廓检测提取文字区域:cv2.findContours(),裁剪出仅包含名称的区域后再传入pytesseract,避免无关元素干扰
  • 对分散的单个名称,分割为独立小区域分别识别,降低跨区域识别误差

pytesseract参数调优

  • 指定识别语言:中文名称添加lang='chi_sim',英文名称用lang='eng',避免混合识别错误
  • 字符白名单:限制识别字符范围,如仅识别中文和数字:pytesseract.image_to_string(cropped_img, lang='chi_sim', config='--psm 6 --oem 3 -c tessedit_char_whitelist="0123456789甲乙丙丁..."')
  • 页面分割模式(PSM):根据排版选择,单行名称用--psm 7(单一行文本),块级名称用--psm 6(假设为单一均匀文本块)

后处理修正

  • 模糊匹配:若已知名称候选列表,用difflib.SequenceMatcher计算相似度,将识别结果匹配到最接近的候选名称
  • 多识别校验:对同一区域多次识别取众数,减少单次识别的随机误差
  • 规则过滤:根据名称的固定格式(如长度、前缀)过滤无效识别结果,触发重识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:32:19