基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序

作业要求

拍一张A4纸文稿的图片,利用角点检测、边缘检测等,再通过投影变换完成对文档的对齐扫描

简介

使用python语言,基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序

  • 演示视频

    DocAlignScan演示

说明

为了后续方便说明,这里给出定义
在这里插入图片描述

安装

numpy==1.21.6
opencv_contrib_python==4.5.4.60
opencv_contrib_python_headless==4.5.5.64
opencv_python==4.8.1.78
Pillow==10.1.0
PyQt5==5.15.10
PyQt5_sip==12.11.0

注意:本地环境导出,由于环境杂乱,导出的版本有多个,这里只留下了最后下载的版本,并不一定正确,仅供参考
或使用语句:
pip requirements.txt -r

运行

使用语句:python ./rum

功能

  1. 导入/保存图像
  2. 对图像进行:放大缩小(点击按钮或使用鼠标滚轮)/拖动 / 旋转(固定角度90)/图像增强 操作
  3. 对图像进行文档对齐扫描操作,并可对scan_img进行:保存/旋转/图像增强 操作

使用

  • Step1:运行run.py,显示基于PyQt5搭建的图形界面
    在这里插入图片描述

  • Step2:点击“open”按钮导入img
    在这里插入图片描述

(导入的图像有时候比例会扭曲啊显示不清晰啊,但是还是能勉强使用orz)

  • Step3:点击“对齐扫描”按钮
    在这里插入图片描述

点“OK”
在这里插入图片描述

(注意:由于处理时未压缩图片大小,像素大的图像耗费时间多。请耐心等待)

待完善

1. 拍摄的文档照片,背景需单一,且文档四角需清晰,否则分割失败;
2. 该项目使用pyqt5作为图形界面,但在进行文档对齐扫描时是使用OpenCV的界面,两者的图像格式不能很好的切换,导致应用程序的耦合性低,用户使用不够友好;
3. 由于时间有限(加懒),手动调整角点的功能未实现,待后续完善。

代码相关

  • 项目地址:https://github.com/CStar-777/DocAlignScanner
    项目目录:
    在这里插入图片描述
    各文件说明:
    config.py:各种库
    run.py:项目运行文件
    在这里插入图片描述
    ui.py:使用PyQt5定义的图形界面
    simple_scan:简陋的文档对齐扫描函数文件

猜你喜欢

转载自blog.csdn.net/Transfattyacids/article/details/133972389