我正在使用https://github.com/CloudDelphi/TTesseractOCR4上提供的Delphi Tesseract Package 器。基于这里的示例:Get font of recognized character with Tesseract-OCR我应该调用api.GetIterator()
方法来获取WordFontAttributes()
。正如我所看到的,Delphi Package 器不直接支持api.GetIterator()
,但具有TTesseractPageLayout.AnalyseLayout
函数来访问GetIterator()
。
在OnRecognizeEnd
中,我调用AnalyseLayout
,它返回单词的文本,但不返回字体名称:
Tesseract.PageLayout.AnalyseLayout;
for TesseractWord in Tesseract.PageLayout.Words do
begin
memo1.Lines.Add(TesseractWord.Text);
memo1.Lines.Add(TesseractWord.FontName);
end;
你能帮我解决这个问题吗?
1条答案
按热度按时间2hh7jdfx1#
您似乎使用的是tesseract版本>=4.0.0.0。在这些版本中,识别是通过神经网络(LSTM引擎)完成的,因此字体名称不可用。您可以获得的字体名称的最新版本是版本3,它使用旧引擎。
你可以在以下链接中阅读(用户在GitHub官方回购上总结的问题):
1.https://github.com/sirfz/tesserocr/issues/292
1.https://github.com/tesseract-ocr/tesseract/issues/3820
1.https://github.com/tesseract-ocr/tesseract/issues/1074