它解决什么问题:拍照转扫描件、照片矫正

手机拍照很方便,但拍「纸」这件事,几乎每次都有点小遗憾:

  • 拍讲义想课后归档成整齐的笔记,可每张都歪着、还带着桌面 / 地面背景;
  • 拍合同要清晰可读、留作凭证,斜拍透视变形,字都斜着;
  • 拍白板 / 黑板的内容,反光加歪斜,想转成干净的文字稿很难;
  • 要把纸张照片喂给 OCR,歪斜、反光会明显降低识别率。

PaperFix 把这些照片一键拉正:纸张变成规整矩形、多余的背景裁掉,还能再一步变白底黑字,效果接近扫描件——适合归档、打印、OCR 前处理。

怎么做到:自动找纸、投影拉平

不用你手动点四个角。PaperFix 的流程是:灰度阈值分割(自动避开亮色瓷砖 / 大理石反光背景)→ 取最大的纸张连通区域并补全文字造成的凹陷 → 定位四角 → 投影变换拉平。整个过程基于 scikit-image 传统图像处理,不装 OpenCV、不用深度学习模型,轻量、可解释、本地跑。

「扫描效果」用的是 Sauvola 自适应二值化:把画面变成白底黑字,顺带消除光照不均与反光——就像把照片过了一遍扫描仪。

核心特性

  • 一键纠偏、透视矫正:自动检测纸张四角、投影拉平,拍歪的纸张照片变成规整矩形;
  • 扫描仪效果:白底黑字二值化,去掉阴影反光,照片秒变扫描件,适合打印、归档、OCR 前处理;
  • 批量处理:一个文件夹 / 多张照片一次处理,单张失败不中断整批,结束时汇总结果;
  • 调试图--debug 输出角点检测可视化,便于排查个别「没找准」的图;
  • GUI 可视化界面 + 命令行:拖照片进窗口点一下就纠偏,无需命令行;也可在终端批量处理;
  • 一键安装:安装包约 1MB,双击下一步即完成,首次运行自动配好环境;
  • 本地工具、照片不上传:所有处理在本机完成,数据不上传、隐私安全。

GUI 可视化工具怎么用(无需命令行)

  • 把照片拖进窗口(或点「浏览」选文件),立即显示原图;
  • 点「纠偏」,右侧显示拉正后的预览结果;
  • 勾选「扫描效果」,切换为白底黑字的二值效果;
  • 点「保存」,通过原生对话框选择路径写出结果。

命令行(CLI)速查

新开一个终端,命令是 py-tools-paperfixfix 是默认子命令):

:: 单张纠偏,输出 photo_fixed.jpg
py-tools-paperfix fix photo.jpg

:: 纠偏 + 扫描效果,输出 photo_scan.png
py-tools-paperfix fix photo.jpg --scan

:: 批量处理一个文件夹
py-tools-paperfix fix imgs/ -o out/

:: 只检测四角(JSON 输出,可管道给脚本 / AI)
py-tools-paperfix corners photo.jpg --json

:: 纠偏的同时输出调试图,排查角点检测
py-tools-paperfix fix photo.jpg --debug dbg/

适用范围与边界

如实说明它的边界,不硬猜:

  • 适用于纸张比背景亮的照片(白纸几乎都满足);白纸放白桌这类低对比场景会失败并报「未检测到纸张区域」,不做无谓的猜测;
  • 纸张被揉皱 / 卷曲(非平面变形)无法完全恢复,投影变换只解决透视变形;
  • 深色背景 + 浅色封面等低对比场景同样适用,但扫描模式的插图区域会变斑驳(二值化的预期行为)。

下载与一键安装

  1. 点上方「下载安装包」按钮,得到 py-tools-paperfix-setup-1.0.0.exe
  2. 双击运行,按提示下一步即可一键安装,自动加入开始菜单和 PATH;若 Windows 提示「未知发布者」或「已保护你的电脑」,点「更多信息 → 仍要运行」继续即可;
  3. 想用 GUI 可视化界面:双击桌面或开始菜单的 PaperFix 图标;
  4. 想用命令行:新开终端输入 py-tools-paperfix

首次运行会自动配好环境(窗口里显示初始化进度),完成后即可使用。本系列工具共用一套运行环境,之后装同系列工具会很快。

常见问题

  • 拍歪的照片怎么拉正、变扫描件?把照片拖进 PaperFix 窗口点「纠偏」,自动检测四角、透视矫正拉正成规整矩形;再勾选「扫描效果」即可得到白底黑字的扫描件效果。
  • 照片会上传吗?安全吗?不会。PaperFix 是纯本地工具,所有处理都在你自己的电脑上完成,照片不经过任何服务器、数据不上传,处理合同等隐私照片也放心。
  • 为什么下载 / 运行时 Windows 提示「未知发布者」甚至拦截?因为安装包没有商业数字签名(个人开发者出品、暂无签名证书),这是无签名软件的常见提示,并非病毒——浏览器拦截下载时点「保留 / 仍然下载」,Windows 弹窗点「更多信息 → 仍要运行」即可;首次启动联网下载 Python 运行环境也是正常行为,允许放行即可。
  • 和扫描全能王这类手机扫描 App 有什么区别?PaperFix 是 Windows 上免费的纯本地工具,照片不出电脑、数据不上传;不想把照片交给手机扫描类 App 时,它是不错的扫描全能王替代。
  • 能做 OCR 文字识别吗?不能。PaperFix 只做照片矫正和扫描效果,属于 OCR 前处理:先把歪斜照片拉正、转白底黑字,再喂给 OCR 能明显提高识别率。
  • 报「未检测到纸张区域」?照片中纸张与背景对比度过低(如白纸放白桌),换一张对比更清晰的照片。
  • 处理完会覆盖原图吗?不会,默认输出到源文件旁加后缀(_fixed.jpg / _scan.png),除非显式 --overwrite
  • 是 AI / 深度学习吗?不是,纯传统图像处理(scikit-image),轻量、可解释、本地跑。
  • 和扫描仪有什么区别?扫描仪是光学扫描设备;PaperFix 是把你手机拍的照片变成扫描效果——没有扫描仪、又想要「白底黑字」时很好用。
  • 图形界面打不开?依赖系统 WebView2 运行时(Win10 / Win11 通常自带)。

总结

「拍纸拍歪」是个高频小痛点,PaperFix 的定位就是一个动作解决它:拖进来、点一下,照片矫正拉正;想要扫描件,再勾一下出白底黑字。轻量、免费、一键安装,GUI 可视化界面 + 命令行双模式,纯本地运行、照片数据不上传——拍照转扫描件、透视矫正,从此不求人。需要更通用的图片批处理(转换 / 压缩 / 缩放 / 水印等),用同系列的 ImgTool;两者都来自 mdview 常用工具,和 MarkItDown / Pandoc 一起,文档、图片的日常处理基本齐了。