C# 如何使用tesseract计算文本或页面的方向

C# 如何使用tesseract计算文本或页面的方向,c#,visual-studio-2015,ocr,tesseract,C#,Visual Studio 2015,Ocr,Tesseract,所以我一整天都在想这个问题。我真的希望有人能帮我。 我试图写一个软件,将处理一个PDF文档。处理装置,删除已被颠倒扫描的空页和旋转页 显然我需要某种OCR库,所以我选择了Tesseract。检测空页非常容易。但是方向属性似乎根本不起作用(编辑:不起作用的意思是它总是说“PageUp”)。但从我目前收集的信息来看,这应该给我一个提示,我的页面是否颠倒了。我错过什么了吗?为此,可能需要在tessdata文件夹中包含某些内容 我还尝试了测试GetMeanConfidence的方法,翻转图像,然后比较M

所以我一整天都在想这个问题。我真的希望有人能帮我。 我试图写一个软件,将处理一个PDF文档。处理装置,删除已被颠倒扫描的空页和旋转页

显然我需要某种OCR库,所以我选择了Tesseract。检测空页非常容易。但是方向属性似乎根本不起作用(编辑:不起作用的意思是它总是说“PageUp”)。但从我目前收集的信息来看,这应该给我一个提示,我的页面是否颠倒了。我错过什么了吗?为此,可能需要在tessdata文件夹中包含某些内容

我还尝试了测试GetMeanConfidence的方法,翻转图像,然后比较MeanConfidence,因为从理论上讲,没有颠倒的页面应该更容易阅读。但是差别太小了,我认为这是不可靠的

我切换了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());
   }
}
我希望输出能告诉我页面是否颠倒。这样我就知道它是否需要旋转。性能不重要!
我也对不同的方法和库持开放态度(只要它们是免费的)。

我不熟悉C&,但如果你提供测试图像和页面属性,我可以帮助你测试/其他解决方案。顺便说一句:如果你对页面定向感兴趣,只有你可以尝试leptonica-有LeptonicaSharp项目。看看函数,谢谢!我将在下周对此进行测试。如果我没有任何成功,我会发布一个测试图像。我不熟悉C&,但如果你提供测试图像和页面属性,我可以帮助你测试/其他解决方案。顺便说一句:如果你对页面定向感兴趣,只有你可以尝试leptonica-有LeptonicaSharp项目。看看函数,谢谢!我将在下周对此进行测试。如果我没有任何成功,我会发布一个测试图像。