文档扫描仪
Document Scanner
📌 项目介绍
用摄像头拍摄纸质文档,自动检测文档边缘、做透视矫正,再增强文字清晰度,输出类似手机扫描仪效果的高质量图片。
核心技术是 OpenCV 的轮廓查找 + 四点透视变换(warpPerspective),是图像处理实战中非常有价值的经典流程。
🧰 环境与物料
- 电脑 + 摄像头(或手机拍摄后导入)
- Python 3.7+ 环境
- pip 安装:opencv-python、numpy
- 一张与背景颜色对比明显的文档
🔧 步骤拆解
1
读入图像
从摄像头抓拍或读取本地图片
先缩放统一尺寸,加快处理
2
预处理
转灰度 → 高斯模糊 → Canny 边缘检测
预处理质量直接决定轮廓检测成功率
3
查找文档轮廓
findContours 找最大外轮廓
用 approxPolyDP 逼近成四边形
4
透视矫正
取四角点,按左上/右上/右下/左下排序
用 getPerspectiveTransform + warpPerspective 拉正
5
增强输出
灰度化或自适应阈值提升文字对比度
保存为图片,完成扫描效果
6
封装成应用
加按键交互:空格扫描、S 保存
可批量处理多张照片
💡 要点提示
- 背景与文档颜色反差越大越好,深色文档放浅色桌面效果最佳
- 四角排序用「x+y 最小为左上、x-y 最大为右上」等技巧避免错位
- 自适应阈值比全局阈值更能应对光照不均