java - Tess4j - Pdf 到 Tiff 到 tesseract -“警告:无效分辨率 0 dpi。改用 70。”
问题描述
我正在使用 tess4j (net.sourceforge.tess4j:tess4j:4.4.0) 并尝试对 pdf 文件进行 OCR。因此,据我所知,我必须首先将 pdf 转换为 tiff 或 png(任何建议?)我这样做了:
tesseract.doOCR(PdfUtilities.convertPdf2Tiff(inputPdfFile));
并得到以下警告:
Warning: Invalid resolution 0 dpi. Using 70 instead.
问题
- 它对我的扫描结果有影响吗?(如果没有,好的 - 我可以关闭警告)
- 有没有办法手动设置 DPI 或者应该
convertPdf
为我处理这个?
解决方案
如果图像元数据中没有分辨率信息,Tesseract 会尝试自行估计分辨率,以便可以在结果中计算字体大小信息。
您可以尝试以下 API 来设置输入图像分辨率:
instance.SetTessVariable("user_defined_dpi", "300");
或者
TessBaseAPISetSourceResolution(TessBaseAPI handle, int ppi);
您可以通过以下方式抑制控制台输出:
instance.setTessVariable("debug_file", "/dev/null");
推荐阅读
- ruby-on-rails - 如何创建一个样式正确且使用 Haml 和 Wicked-pdf 的 pdf_from_string 创建的 pdf
- arrays - 用于将带有对象的数组对象转换为枚举的脚本(打字稿)
- react-native - 如何处理来自服务器响应的 pdf 文件?
- php - ErrorException 数组到字符串的转换 Laravel 6.0 EmailVerification
- javascript - 重新选择重用的选择器意外行为
- jquery - 无法读取未定义的属性“中止”
- instagram-api - 如何从 instagram api 获取评论数据
- jestjs - 使用 Github Actions ci/cd 时如何设置正确的根路径?
- git - 我正在寻找在 Bamboo 中创建脚本,如果没有为 master 分支更新一个文件但如果它是功能分支则通过
- angular - 得到“错误 TS2554:预期 1 个参数,但得到 0。” 调用构造函数时