# doc_scanner_homework **Repository Path**: ewrjfyyuotoyu/doc_scanner_homework ## Basic Information - **Project Name**: doc_scanner_homework - **Description**: 这个项目是一个文档扫描仪应用程序,使用Python编写。它可以帮助用户加载图片并裁剪文档,提供方便的文档扫描功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 301 - **Created**: 2026-05-07 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # doc_scanner_homework ## 项目描述 一个基于 Tkinter + OpenCV + NumPy + Pillow 的文档扫描练习项目。程序自动检测图片中的文档边界,允许用户手动拖拽四个角点微调,然后通过透视变换把文档展平成一张更规整的"扫描件"。 ## 项目运行效果截图 ![输入图片说明](%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202026-05-07%20191349.png) ## 功能 - 选择图片:通过点击 "Select Image" 按钮选择要加载的图片。 - 自动检测文档角点:使用灰度化、模糊、阈值化和边缘检测自动定位文档四个角点。 - 拖拽角点微调:鼠标拖拽绿色角点调整裁剪区域。 - 裁剪文档:点击 "Crop" 按钮执行透视变换,在新窗口中查看扫描结果。 - 鼠标移动显示:勾选 "Show Mouse Move" 复选框可以在控制台显示鼠标坐标信息。 ## 依赖 该项目依赖以下库: - tkinter:用于创建 GUI 应用程序。 - Pillow:用于图片格式转换。 - OpenCV:用于图片处理和计算机视觉任务。 - numpy:用于数值计算。 可以使用以下命令安装所需依赖: ```bash pip install -r requirements.txt ``` ## 使用 1. 安装所需依赖(参见上面的依赖部分)。 2. 运行程序: ```bash python main.py ``` 或直接运行: ```bash python app.py ``` 3. 点击 "Select Image" 按钮选择要加载的图片。 4. 拖拽绿色角点微调裁剪区域(可选)。 5. 点击 "Crop" 按钮裁剪文档。 6. 在弹出的新窗口中查看扫描结果。 ## 测试 ```bash python -m unittest discover -s tests -v ``` ## 项目结构 ```text doc_scanner_homework/ ├── app.py # Tkinter 图形界面 ├── doc_scanner.py # 文档检测与透视裁剪逻辑 ├── main.py # 统一运行入口 ├── bootstrap_vendor.py # 项目内本地依赖路径引导 ├── requirements.txt # 运行依赖 ├── tests/ │ └── test_doc_scanner.py ├── doc.jpg # 示例图片 1 ├── doc_2.jpg # 示例图片 2 └── docs/images/ # 运行效果图 ``` ## 注意 - 本项目仅支持基于 Python 的脚本文件。 - 请确保已安装所需的依赖库。 - 如果希望把依赖装在项目目录内部,可以执行: ```bash python -m pip install --target vendor -r requirements.txt ``` `bootstrap_vendor.py` 会在运行时自动把 `vendor/` 加入 `sys.path`。 ## 个人信息 [TODO: 此处填写个人信息] - 学号: 202452320110 - 年级: 2024 - 专业: 智能科学与技术 - 班级: 1 班