【问题标题】:Tesseract OCR in ASP.NET MVCASP.NET MVC 中的 Tesseract OCR
【发布时间】:2016-09-15 06:55:45
【问题描述】:

我正在尝试在我的项目中实现 Tesseract OCR。 我的解决方案中有两个项目:

  • Portal - 这是 ASP.NET MVC 应用程序
  • OCR - 这是一个类库,我有 Tesseract

在 OCR 类库中,我有方法:

using (var ocrEngine = new TesseractEngine(/*WHAT DOES COME HERE?*/, "eng", EngineMode.Default))
            {

                using (var pix = PixConverter.ToPix(new Bitmap(imageFilePath)))
                {
                    using (var page = ocrEngine.Process(pix))
                    {
                        output = page.GetText();
                    }
                }
            }

在我的项目中,我有文件夹 tessdata,但我不知道如何引用它以使一切正常。我试过了:

@"./tessdata"

System.Web.Hosting.HostingEnvironment.MapPath("~/tessdata")

但它们都不起作用。

【问题讨论】:

    标签: c# asp.net-mvc ocr tesseract


    【解决方案1】:

    我使用Server.MapPath,演示效果很好。

        using (var engine = new TesseractEngine(Server.MapPath(@"~/tessdata"), "eng", EngineMode.Default))
        {
            // have to load Pix via a bitmap since Pix doesn't support loading a stream.
            using (var image = new System.Drawing.Bitmap(file.InputStream))
            {
                using (var pix = PixConverter.ToPix(image))
                {
    
                    using (var page = engine.Process(pix))
                    {
    
                    }
                }
            }
        }
    

    可以查看完整源码here

    【讨论】:

    • 这非常适用于 asp.net mvc 项目,但正如我之前所写,我有两个项目在解决方案中,我试图让 tesseract 工作的一个是类库,而不是ASP.NET MVC 项目。我不能使用 Server.MapPath()
    • @Siemko 我明白了,这可以帮助stackoverflow.com/questions/3032592/…
    【解决方案2】:

    您可以使用以下方法:

    Path.Combine(HttpRuntime.AppDomainAppPath,"tessdata")
    

    如下:

    using (var engine = new TesseractEngine(Path.Combine(HttpRuntime.AppDomainAppPath,"tessdata"), "eng", EngineMode.Default))
        {
            // have to load Pix via a bitmap since Pix doesn't support loading a stream.
            using (var image = new System.Drawing.Bitmap(file.InputStream))
            {
                using (var pix = PixConverter.ToPix(image))
                {
    
                    using (var page = engine.Process(pix))
                    {
    
                    }
                }
            }
        }
    

    希望对你有帮助

    【讨论】:

    • HttpRuntime.AppDomainAppPath 返回目录 od Portal(启动项目),我想要实现的是获取 OCR 项目的目录。例如。不是“C:\Projects\mypro\Portal\”,而是“C:\Projects\mypro\OCR\
    • 为什么你不使用静态路径
    【解决方案3】:

    我所做的只是将 tessdata 文件夹移动到主 ASP.NET MVC 项目,然后按照@Sunil Kumar 的建议使用简单的Path.Combine(HttpRuntime.AppDomainAppPath,"tessdata")

    【讨论】:

      猜你喜欢
      • 2013-07-17
      • 1970-01-01
      • 2010-12-20
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 2012-02-25
      相关资源
      最近更新 更多