因此,我现在已经尝试了一整天了。我真的希望有人能够帮助我。 我正在尝试编写一个可以处理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());
}
}
我希望看到一个输出,告诉我页面是否上下颠倒。这样我就知道是否必须旋转它。性能无所谓! 我也欢迎各种方法和库(只要它们是免费的)。