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

如何检测Tesseract 5.2图像中文本方向并正确提取文本?

解决Tesseract 5.2处理多方向文本识别问题

针对你遇到的文本方向不一致导致识别错误的问题,可以利用Tesseract的**OSD(Orientation and Script Detection,方向与脚本检测)**功能先识别文本旋转角度,再将图像旋转至正确方向后进行文本提取,具体实现如下:

1. 启用OSD检测文本旋转角度

首先需要初始化包含OSD语言包的Tesseract引擎,通过OsdOnly模式检测图像中文本的旋转角度:

using (var engine = new Tesseract.TesseractEngine(path, "eng+osd", Tesseract.EngineMode.Default))
{
    // 仅执行方向检测
    using (var osdPage = engine.Process(img, Tesseract.PageSegMode.OsdOnly))
    {
        var osdResult = osdPage.GetOSD();
        // 获取文本旋转角度(通常为0、90、180、270度)
        int rotationAngle = osdResult.Rotation;

        // 旋转图像至正确方向
        Bitmap rotatedImage = RotateImage(img, rotationAngle);

        // 用校正后的图像提取文本
        using (var textPage = engine.Process(rotatedImage, Tesseract.PageSegMode.Auto))
        {
            return textPage.GetText();
        }
    }
}

2. 实现图像旋转辅助方法

添加一个用于根据角度旋转图像的工具方法:

private static Bitmap RotateImage(Image originalImg, int angle)
{
    // 根据旋转角度调整位图尺寸
    Bitmap rotatedBitmap;
    if (angle == 90 || angle == 270)
    {
        rotatedBitmap = new Bitmap(originalImg.Height, originalImg.Width);
    }
    else
    {
        rotatedBitmap = new Bitmap(originalImg.Width, originalImg.Height);
    }

    // 执行图像旋转
    using (Graphics g = Graphics.FromImage(rotatedBitmap))
    {
        g.TranslateTransform(rotatedBitmap.Width / 2f, rotatedBitmap.Height / 2f);
        g.RotateTransform(angle);
        g.TranslateTransform(-originalImg.Width / 2f, -originalImg.Height / 2f);
        g.DrawImage(originalImg, 0, 0);
    }

    return rotatedBitmap;
}

关键说明

  • 引擎初始化时需指定eng+osd语言组合,确保加载方向检测所需的训练数据(osd.traineddata),如果你的Tesseract环境中没有该文件,需要单独下载并放入tessdata目录。
  • 使用PageSegMode.OsdOnly模式可以跳过文本识别,仅高效完成方向检测,获取角度后再旋转图像,避免无效识别。
  • 你的示例图像文本均为90度倍数旋转,上述方法可完美适配;若遇到非整数倍倾斜的文本,可额外添加倾斜校正逻辑(如利用霍夫变换检测文本行角度)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:20:20