如何使用tesseract找出文本或页面的方向

时间:2019-07-03 13:41:47

标签: c# visual-studio-2015 ocr tesseract

因此,我现在已经尝试了一整天了。我真的希望有人能够帮助我。 我正在尝试编写一个可以处理PDF文档的软件。处理意味着删除空白页并旋转已倒置扫描的页。

很明显,这里我需要某种OCR库,因此我选择了Tesseract。检测空页面很容易。但是Orientation属性似乎根本不起作用(编辑:不起作用,我是说它总是显示“ PageUp”)。但是从我到目前为止收集的信息来看,这应该可以提示我我的页面是否颠倒了。我想念什么吗?也许为此必须在tessdata文件夹中包含某些内容?

我还尝试了测试GetMeanConfidence的方法,翻转图像然后比较MeanConfidences,因为从理论上讲,并非颠倒的页面应该更易于阅读。但是差异是如此之小,以至于我不认为这是可靠的。

然后我切换了TesseractEngine的语言属性。我尝试了“ eng”,“ deu”和“ osd”。所有结果都相同。

Bitmap image = new Bitmap(filepath);
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
path = Path.Combine(path, "tessdata");
path = path.Replace("file:\\", "");
var engine = new TesseractEngine(path, "osd", EngineMode.TesseractOnly);
using (var img = PixConverter.ToPix(image))
{
  using (var page = engine.Process(img, PageSegMode.AutoOsd))
  {
    var pageIterator = page.AnalyseLayout();
    pageIterator.Begin();
    var pageProperties = pageIterator.GetProperties();
    Console.WriteLine(pageProperties.Orientation.ToString() +" "+  
    pageProperties.TextLineOrder + " " + pageProperties.DeskewAngle + " " + 
    pageProperties.WritingDirection);
    Console.WriteLine(page.GetMeanConfidence());
   }
}

我希望看到一个输出,告诉我页面是否上下颠倒。这样我就知道是否必须旋转它。性能无所谓! 我也欢迎各种方法和库(只要它们是免费的)。

0 个答案:

没有答案