OCRmyPDF 页面旋转与纠偏:一条命令摆正歪斜的扫描页
OCRmyPDF 页面旋转与纠偏一条命令摆正歪斜的扫描页【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF扫描回来的 PDF 有半页是横着放的很多人的第一反应是在阅读器里一页页手动转。但有个反直觉的细节PDF 里横着的页面文件内部往往就是正着存的只是页面字典里一行/Rotate 90让查看器把它渲染歪了。也就是说要修的可能不是图像本身而是这行元数据。OCRmyPDF 的--rotate-pages和--deskew两个参数自动化的正是这件事。换个角度看这两个开关默认都是关的。如果你跑 OCR 时从没带过它们页面再歪输出也原样保持——这正是不少人以为它应该能自动摆正却没看到效果的原因。一句话概括这个功能的价值整批横放的扫描件一条命令翻正小角度歪斜自动找平全程不用打开任何一页。 它怎么知道页面朝向哪边每页做 OCR 之前OCRmyPDF 先让 Ghostscript 把该页画成一张预览图此时已带上页面原有的/Rotate和你肉眼看到的一致再交给 Tesseract 的 OSD方向与脚本检测模块问一个问题这页朝哪边你有多确定 返回两个数角度0/90/180/270和置信度。决策逻辑在 src/ocrmypdf/_pipeline.py 里核心就这几行correction orient_conf.angle % 360 if orient_conf.confidence options.rotate_pages_threshold and correction ! 0: return correction return 0它到底在干嘛置信度够高且确实歪了就返回校正角度否则一律不动。阈值由--rotate-pages-threshold控制默认 14.0见 src/ocrmypdf/_defaults.py。要留意这是 Tesseract 报告的任意单位不是百分比别把它当概率解读。校正动作到底落在哪里确定了校正角度后OCRmyPDF 不是在原 PDF 里转一下图而是把整页按校正角度渲染成正的图像再把图像和即将生成的 OCR 文本层一起装进新页面。90/270 度时连坐标轴都要互换这段坐标映射在 src/ocrmypdf/_graft.py 里。所以最终输出是图像正放、文字可选中不再依赖查看器去解释/Rotate。 只歪了几度怎么办--rotate-pages只处理 90° 整数倍。扫描里最常见的其实是几度的小歪斜那是--deskew的活Tesseract 从文本行的基线估出偏斜角实现见 src/ocrmypdf/_exec/tesseract.pyPillow 再按这个角度旋转图像旋出来露出的白边用白色填满。两个参数是配合关系先把页面转到 90° 整数倍再对小角度找平建议一起加。动手验证最小命令30 秒能看到效果ocrmypdf -l eng --rotate-pages --deskew in.pdf out.pdf它到底在干嘛加上两个开关横放页会被翻正、小歪斜被找平需要翻正时日志会用page is facing →, confidence 23.5 - will rotate这种人话告诉你做了什么。三个容易踩的坑症状页面明明横放却没被翻转。原因置信度没到阈值日志会写 confidence too low to rotate。应对对该文档用--rotate-pages-threshold 10降低门槛或接受不转。症状命令直接报错。原因只写了--rotate-pages-threshold却没开启--rotate-pages参数校验层会拒绝这种组合。应对把主开关一起加上。症状地图、图表页被误判或直接跳过。原因OSD 靠连续文本行判断朝向几乎没有水平文字线的页面缺乏参照Tesseract 甚至会报 Too few characters。应对图表多的文档保持默认阈值必要时按页码范围分批处理。想再往深里走方向检测并不是 Tesseract 一家说了算。插件体系把检测拆成了get_orientation和get_deskew两个钩子换成自己的算法只需实现这两个方法并注册插件扩展方式见 docs/plugins.md。仓库里还配了一个 null OCR 引擎永远报告无需旋转适合拿来做前后对比。--rotate-pages管 90° 整数倍翻正--deskew管小角度找平两者默认关闭。默认置信度阈值 14误判时看日志、调--rotate-pages-threshold。内置检测覆盖不了的版式先看插件钩子或直接给项目提 issue 讨论。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

日新闻

周新闻

月新闻