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

Tesseract特殊字符白名单失效及空格丢失问题求助

问题原因分析

你的问题主要由三个参数配置错误导致:

  1. 语言包参数错误:-l Latin不是Tesseract支持的语言代码,Tesseract的-l参数需要指定具体的语言包(如西班牙语spa,这类语言原生支持ñ、á等特殊字符),而不是脚本名称。
  2. 白名单遗漏空格:你设置的tessedit_char_whitelist中没有包含空格字符,Tesseract会过滤掉所有不在白名单内的字符,自然不会输出单词间的空格。
  3. 命令行编码问题:Windows默认命令行编码为GBK,直接输入UTF-8编码的特殊字符(如ñ、á)会导致Tesseract无法正确解析白名单中的这些字符,从而忽略它们。
解决方案
  • 安装并使用正确的语言包
    下载安装西班牙语语言包(spa.traineddata),将其放入Tesseract的tessdata目录,然后将命令中的-l Latin替换为-l spa。

  • 修正白名单并处理编码

    1. 先在命令行执行chcp 65001切换到UTF-8编码,确保特殊字符能正确传递。
    2. 更新白名单,加入空格字符,修改后的命令如下:
      tesseract text.png stdout --psm 6 -l spa -c tessedit_char_whitelist="aáeéiocfhklmnñtÑ "
      

    (注意白名单末尾的空格,用引号包裹避免命令行解析错误)

  • 调整PSM模式(可选)
    如果--psm 6(假设文本为单一均匀块)不适合你的图像,可以尝试更合适的模式,比如:

    • --psm 3:默认模式,自动处理分页、分段
    • --psm 11:针对稀疏文本,尽可能识别所有可见文本
  • 使用配置文件规避编码问题(可选)
    创建一个文本文件whitelist.cfg,内容如下:

    tessedit_char_whitelist aáeéiocfhklmnñtÑ 
    

    然后执行命令:

    tesseract text.png stdout --psm 6 -l spa --user-words whitelist.cfg
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:10:58