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

Tesseract识别阿拉伯文字符无返回结果,求解决方案

解决Pytesseract无法识别阿拉伯文字符的问题

我之前也碰到过类似的阿拉伯文识别卡壳的情况,咱们一步步来排查解决:

1. 先确认阿拉伯语训练数据是否安装

默认安装Tesseract的时候,一般只自带英文训练包,阿拉伯语(ara)的训练数据需要单独安装。你可以打开Tesseract的安装目录:C:\Program Files (x86)\Tesseract-OCR\tessdata,看看里面有没有ara.traineddata这个文件。如果没有,得下载对应你Tesseract版本的阿拉伯语训练数据,放到这个tessdata目录里才行。

2. 给图像做预处理优化

阿拉伯文的识别对图像清晰度、对比度要求挺高的,试试给图像做些预处理再识别:

  • 转成灰度图,减少色彩干扰
  • 增强对比度,让字符边缘更清晰

修改后的代码可以参考:

try:
    from PIL import Image, ImageOps
except ImportError:
    import Image, ImageOps
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"

# 预处理步骤:转灰度 + 自动增强对比度
img = Image.open('maroc.jpg').convert('L')
img = ImageOps.autocontrast(img)

print(pytesseract.image_to_string(img, lang='ara'))

3. 调整语言参数试试

如果图像里有混合文字(比如阿拉伯文+英文/数字),可以试试指定多语言参数lang='ara+eng';另外如果你下载了阿拉伯语的优化训练包(比如ara_fast或者ara_best),也可以替换lang参数的值试试。

4. 验证图像本身的质量

先确认你的maroc.jpg里的字符د足够清晰,没有模糊、变形或者被截断的情况。可以先把图像放大查看,或者用一张只有清晰阿拉伯字符的测试图来验证,排除图像本身的问题。

备选方案:使用EasyOCR

如果以上方法都没效果,可以试试专门对多语言支持更好的EasyOCR,它对阿拉伯语的识别表现还不错。示例代码如下:

import easyocr
# 初始化阿拉伯语识别器
reader = easyocr.Reader(['ar'])
# 识别图像
result = reader.readtext('maroc.jpg')
# 输出识别到的文本
for item in result:
    print(item[1])

安装EasyOCR的话,直接用pip install easyocr即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:49:50