如何使用tesseract在文档中OCR多列
How to OCR multiple column in a document using tesseract
我正在做一个使用tesseract的僧伽罗语OCR项目。我的目标是ocr,在文档中包含文本的多列。并以正确的格式输出文件。有什么方法可以在使用tesseract的文档中识别列吗?
设置tesseract来处理多列文档非常容易,尽管我在网上很少找到关于多列页面的信息或讨论。其基本思路是设置页面分割方法,同时做到"自动页面分割";(默认)AND "方向和脚本检测"(OSD,不是默认设置)。
这就像将psm
设置为1一样简单,它告诉tesseract"自动使用OSD进行页面分割"。虽然OSD =识别多列文档可能不太明显,但实际上这是结果之一。另一个好处是,脚本检测帮助tesseract避免尝试OCR非文本块,如照片。
有关页面分割方法的更多信息,请参见:https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality
下面是调整页面分割方法的命令行语法示例
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
有关语法的更多信息,请参见:https://tesseract-ocr.github.io/tessdoc/ImproveQuality
当我们扫描图片时,你可以尝试用下面的解决方案来识别列。
TessBaseAPI baseApi = new TessBaseAPI();
baseApi.setDebug(true);
baseApi.init(DATA_PATH, lang); //DATA_PATH - Where Image stored and lang - en(english)
baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_COLUMN);//This line will help us to do segment for captured image - Hope you looking for this line
baseApi.setImage(bitmap);
//Recognized Text after capturing image then process it.
String recognizedText = baseApi.getUTF8Text();
如果您不期望这个解决方案,那么请尝试PageSegMode,希望它可以解决您的问题。
相关文章:
- C++ 对向量向量中的多列进行排序
- EIGEN库:正在编写多列,同时安全
- SQlite 查询 - 如何检索多列数据
- 如何使用C 创建多列列表/向量
- 在Cassandra中插入多列
- 按多列对Vecor进行排序
- 多列中的C++对齐方式
- QTableView,多列带一个标题
- 按多列对C++列表进行排序
- QsortFilterProxyModel正在删除多列
- SOCI:如何处理多列
- 我可以在MFC CListBox中添加多列
- 选择多列索引查询优化
- 如何使用tesseract在文档中OCR多列
- 在c++中读取多列并将它们放入向量中
- c++读多列文件
- 可以有多列复选框的Windows ListView控件(或类似的控件)
- VS 2008中的多列表示C++
- SQLite C++查询行-如何处理多列
- QTableView如何以编程方式选择多列