tesseract包装 - 性能缓慢

时间:2015-12-23 05:41:30

标签: c# ocr tesseract

我正在使用tessearct wrapper for C# v3。所需要的是获得位于图像顶部的12位数字。以下工作,但非常慢(我的电脑上42秒):

public string GetIdentityNumber(string path)
{
    string identityNum = string.Empty;
    Regex regex = new Regex(@"[\d]{4}\s+[\d]{4}\s+[\d]{4}");

    try
    {
        using (var engine = new TesseractEngine(@".\tessdata", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile(path))
            {
                using (var page = engine.Process(img, PageSegMode.SingleBlock))
                {
                    using (var iter = page.GetIterator())
                    {
                        string text;
                        Match match;
                        iter.Begin();
                        do
                        {
                            text = iter.GetText(PageIteratorLevel.TextLine);
                            match = regex.Match(text);
                            if (match.Success)
                            {
                                identityNum = match.ToString();
                                break;
                            }
                        }
                        while (iter.Next(PageIteratorLevel.TextLine));
                    }
                }
            }
        }
    }
    catch
    {

    }

    return identityNum;
}

执行page.GetIterator()方法大约需要40秒。有谁知道任何改善性能的设置或方法?

1 个答案:

答案 0 :(得分:0)

除了将图像(基本上裁剪)限制在您感觉文本将会出现的区域之外,处理的次数也会减少,因此没有太多事情可做。

Tesseract的速度并不出名。