尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

ScanTailor:把散乱的扫描件后处理成干净档案的免费开源文档扫描优化工具

ScanTailor:把散乱的扫描件后处理成干净档案的免费开源文档扫描优化工具 ScanTailor把散乱的扫描件后处理成干净档案的免费开源文档扫描优化工具【免费下载链接】scantailor项目地址: https://gitcode.com/gh_mirrors/sc/scantailorScanTailor 是一款免费开源的扫描后处理工具双页分割、倾斜矫正、内容裁剪、去噪清洁一张一张地输出干净页面图。它面向的正是刚扫完一批图、想把原始扫描件整理成整洁电子档的人。 桌上 120 张图先想清楚要处理什么假设文件夹里躺着一批刚扫出来的图每张 4000×6000 像素左右是 300 DPI 下的 A4。打开前几张基本能碰到四类问题。第一类是双页扫描。为了省事一本书摊开两面一起扫一张图里挤着左右两页中间还有装订缝。不分开的话后面所有处理都会错乱。第二类是歪。纸张在进纸口没对齐整页倾斜 1°~3°也有直接转了 90° 或 180° 的。单页看不明显拼进 PDF 之后每页都歪着阅读体验很差。第三类是扫描仪的锅边缘压纸条留下的黑边、滚轮压出的阴影、纸张周围一圈发暗的背景。这些不是文档内容但占了图像面积的一角。第四类是噪点和污渍灰尘、纸屑、背景不均匀。黑白输出时尤其刺眼小点会像盐一样撒在页面上。ScanTailor 的定位很明确扫描、OCR、拼 PDF 都不归它管它只做一件事——把这些原始图变成可以打印或装订成册的干净页面。给进去的是 raw scans出来的是 ready pages就这么一条流水线。⚙️ 一张图走完全程六段式处理管线ScanTailor 把每个阶段实现为一个独立的 filter顺序写死在StageSequence.cpp里Fix Orientation → Split Pages → Deskew → Select Content → Page Layout → Output。左侧边栏点哪个阶段右侧就显示对应页面和它自己的参数面板。Split Pages判断是单页还是双页先切开再谈别的这是最优先的一步因为后面所有环节都以一页为单位。界面顶部有四个版式按钮自动检测、单页、单页加废料边page plus offcut比如扫了半张纸、双页。选双页后中间会出现一条分割线拖动它能实时看到左右两页的缩略图。分割不是简单对半切。filters/page_split/里的PageLayoutEstimator会在全图里找垂直空白带VertLineFinder沿这条带采样出候选分割线的位置所以装订缝偏左偏右、左右页宽度不等都没问题。自动检测auto在混合扫描里偶尔会猜错这时手动指定版式比逐页修更快。Deskew倾斜检测与矫正把歪掉的页摆正进入 Deskew 阶段右侧会列出每一页的检测结果角度比如1.2°。角度是从页面内容里统计出来的不需要你量。绝大多数页直接接受自动结果即可个别页检测失败常见于内容稀少的页或页眉页脚极重的页可以手动拖一个参考线让它重新估计或者干脆指定角度。注意区分两个概念Deskew 处理的是几度以内的小角度倾斜如果是整页转了 90°/180°应该用前置的 Fix Orientation 阶段先正过来而不是指望 Deskew 去扛。Select Content裁掉扫描阴影与边距圈出真正的文档内容这一步对应扫描件裁剪。每页上会出现一个黄色/绿色的内容框框外区域在输出时丢弃。自动检测分三档cautious / normal / aggressivenormal 是默认值保守档适合内容靠边、容易误裁的页激进档会把页边空白切得更干净。自动框不准时四个角上的控制点可以直接拖动。这一步和去阴影的关系是阴影落在框外就被裁掉了落在框内的交给后面 Output 阶段的背景归一化处理。Page Layout加回白边、对齐内容裁剪之后页面可能顶天立地打印出来很难看。Page Layout 阶段负责在内容四周加白边单位是毫米默认 10mm可分边设置并选择对齐方式——内容在页面里是居中、顶部对齐还是左对齐。如果你要拼成 PDF 后再做 OCR对齐一致会省掉很多麻烦。Output阈值、去噪、DPI决定最终成色最后的 Output 阶段决定输出长什么样。几个常用旋钮颜色模式黑白black_and_white、灰度color_grayscale、混合mixed一页里同时有黑白和彩色图。阈值Threshold黑白化时线条的粗细n0变细、n0变粗默认 0。细字多的页面往负值调字发虚、断笔的往正值调。Despeckle去噪强度off / cautious / normal / aggressive 四档默认 normal。Normalize illumination背景光照归一化专治左亮右暗的扫描仪阴影。Output DPI默认 600拼 PDF 时 600 DPI 的 JPEG 体积可观300 也完全够用。调完后点 Apply to All 附近的按钮各阶段选项面板里的 Set for All / Set for All Selected Pages当前页参数就写进整批页面再点右下角的播放键统一执行。️ 从装好到批量导出一次完整跑通装好并编译Linux 下从源码构建git clone https://gitcode.com/gh_mirrors/sc/scantailor cd scantailor mkdir build cd build cmake .. make sudo make install依赖是 Qt4 和 Boost见CMakeLists.txt发行版源码仓库里一般都有。Windows 官方渠道提供安装包macOS 需要按packaging/osx/里的脚本自己打包。完整的安装与使用手册在官网 scantailor.org 的 wiki 上这里不展开。导入并预览启动后点 New Project选一个文件夹支持 JPEG、PNG、TIFF 等常见格式。加载完成后左侧是全部页面的缩略图缩略图右上角的小图标标记了该页当前处于什么处理状态。如果文件后来被移动了Open Project 时会弹出 Relinking 对话框让你重新指路——项目文件.ScanTailor记录的是路径路径断了不会丢参数。调完一页再批量应用推荐节奏挑一页最有代表性的内容多、问题全的从 Split 一路调到 Output每调好一个阶段就 Set for All。然后翻几页抽查——特别是自动检测容易翻车的页双页里某一页特别空的、有大幅插图的、页边距异常窄的。抽查没问题就播放处理输出图会按页码顺序写进你指定的输出目录文件名规则可以在 Output 阶段里设。 几个容易踩的坑Apply to All 不等于自动检测已生效。它只是把当前页的参数复制给其他页。如果某页自动检测本身错了比如双页被认成单页复制过去的是错误的参数。所以抽查要放在 Set for All 之后、批量执行之前别省这一步。DPI 是物理尺寸的前提。所有边距、页宽都以图里标称的 DPI换算成毫米。扫描时如果实际是 300 DPI 而软件按默认 600 DPI 理解页面物理尺寸会算成一半白边加宽一倍。项目设置里的 DPI 要和扫描仪实际设置一致这是新手翻车最多的地方。反直觉的一条CLI 默认不做分割和纠偏。命令行版scantailor-cli有--start-filter/--end-filter两个参数默认值是 4 和 6——也就是默认只从内容裁剪之后的阶段开始跑。想让批处理包含 Split 和 Deskew要显式写--start-filter1scantailor-cli --start-filter1 --layout2 --deskewauto \ --color-modeblack_and_white --threshold0 \ project.ScanTailor命令行批处理的边界。它适合整批扫描风格统一的情况全是双页、全是 600 DPI、阈值统一。参数是全局的没法逐页覆盖所以它的正确用法是先在 GUI 里调好一个项目、保存 .ScanTailor 文件再让 CLI 按项目文件跑而不是拿一堆风格不一的散图直接怼默认参数。另外 CLI 不能输出项目文件以外的中间结果想中途检查只能回 GUI 打开项目。Despeckle 别一上来就 aggressive。强力去噪会把细字笔画当噪点一起吃掉小字号、细线框的页面尤其明显。默认 normal 处理不动的脏点多数是该去修扫描仪而不是加大去噪档位。 给想读源码的人代码是 C QtGPLv3 授权GPL3.txt、COPYING目录组织按模块切得很清楚filters/六个处理阶段各自的实现每个子目录page_split/、deskew/、select_content/、page_layout/、output/、fix_orientation/都是一个完整 filter带界面和任务逻辑imageproc/图像处理核心——二值化Binarize.cpp、形态学Morphology.cpp、倾斜查找SkewFinder.cpp、去噪Despeckle.cpp相关、SEDM 等测试在imageproc/tests/dewarping/书页弯曲矫正Output 阶段的--dewarpingautofoundation/、math/、zones/、interaction/通用数据结构、曲线拟合、区域编辑和拖拽交互。要理解某阶段怎么工作的最短路径从对应filters/xxx/Filter.cpp的getName()找起顺着Task.cpp看它调用imageproc/里的哪些原语。一点实话README 里写明该项目已不再主动维护代码停在较旧的 Qt4 技术栈上但算法完整、结构自洽作为扫描件处理的参考实现仍然扎实。官方渠道是 scantailor.orgwiki 文档、安装包和 DIY Book Scanner 论坛里的 Scan Tailor 版块。它解决的问题边界清晰、工具链不重适合手里有一批扫描件、又嫌手动修图太慢的人调好一页剩下的交给它。【免费下载链接】scantailor项目地址: https://gitcode.com/gh_mirrors/sc/scantailor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表