基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序
计算机视觉-作业1
- 作业要求
- 简介
- 说明
- 安装
- 运行
- 功能
- 使用
- 待完善
- 代码相关
作业要求
拍一张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
功能
- 导入/保存图像
- 对图像进行:放大缩小(点击按钮或使用鼠标滚轮)/拖动 / 旋转(固定角度90)/图像增强 操作
- 对图像进行文档对齐扫描操作,并可对scan_img进行:保存/旋转/图像增强 操作
使用
-
Step1:运行run.py,显示基于PyQt5搭建的图形界面
-
Step2:点击“open”按钮导入img
(导入的图像有时候比例会扭曲啊显示不清晰啊,但是还是能勉强使用orz)
- Step3:点击“对齐扫描”按钮
点“OK”
(注意:由于处理时未压缩图片大小,像素大的图像耗费时间多。请耐心等待)
待完善
1. 拍摄的文档照片,背景需单一,且文档四角需清晰,否则分割失败;
2. 该项目使用pyqt5作为图形界面,但在进行文档对齐扫描时是使用OpenCV的界面,两者的图像格式不能很好的切换,导致应用程序的耦合性低,用户使用不够友好;
3. 由于时间有限(加懒),手动调整角点的功能未实现,待后续完善。
代码相关
- 项目地址:(等这个作业到截止时间了会放到GitHub上)
项目目录:
各文件说明:
config.py:各种库
run.py:项目运行文件
ui.py:使用PyQt5定义的图形界面
simple_scan:简陋的文档对齐扫描函数文件
相关文章:

基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序
计算机视觉-作业1 作业要求简介说明 安装运行功能使用待完善代码相关 作业要求 拍一张A4纸文稿的图片,利用角点检测、边缘检测等,再通过投影变换完成对文档的对齐扫描 简介 使用python语言,基于PyQt5和OpenCV库的简单的文档对齐扫描应用程…...
【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割2(基础数据流篇)
构建pytorch训练模型读取的数据,是有模版可以参考的,是有套路的,这点相信使用过的人都知道。我也会给出一个套路的模版,方便学习和查询。 同时,也可以先去参考学习之前的一篇较为简单的3D分类任务的数据构建方法,链接在这里:【3D图像分类】基于Pytorch的3D立体图像分类…...

HDR图像处理软件 Photomatix Pro mac中文版新增功能
Photomatix Pro mac是一款专业的HDR合成软件,可以将不同曝光的多张照片合成为一张照片,而保留更多的细节。并且合成时可以帮助去除照片中的鬼影。Photomatix Pro提供两种类型的过程来增加动态范围,一个过程称为HDR色调映射,另一个…...

【Kotlin精简】第5章 简析DSL
1 DSL是什么? Kotlin 是一门对 DSL 友好的语言,它的许多语法特性有助于 DSL 的打造,提升特定场景下代码的可读性和安全性。本文将带你了解 Kotlin DSL 的一般实现步骤,以及如何通过 DslMarker , Context Receivers 等…...

2021年06月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python编程(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 下列程序运行的结果是? s hello print(sworld)A: sworld B: helloworld C: hello D: world 答案:…...

MySQL执行计划分析
执行计划中的常见的列的解释: type system/const :用户主键索引或者唯一索引查询时,只能匹配 1 条数据。一般可以对 sql 查询语句优化成一个常量,那么 type 一般就是 system 或者 const,system 是 const 的一个特例&…...
【数据结构与算法】Snowflake雪花算法Java实现
Snowflake产生的ID由 64 bit 的二进制数字组成,被分成了4个部分,每一部分存储的数据都有特定的含义: 第 0 位: 符号位(标识正负),始终为 0;第 1~41 位 :一共 41 位&…...

重要功能更新:妙手正式接入SHEIN供货模式(OBM)店铺,赋能卖家把握出海新机遇!
继接入SHEIN平台模式店铺之后,妙手ERP积极响应卖家需求,正式接入SHEIN供货模式(OBM)店铺,并支持产品采集、批量刊登、产品管理等功能,帮助跨境卖家快速上品、高效运营,把握出海新机遇。 SHEIN供…...

和鲸ModelWhale与中科可控X系列异构加速服务器完成适配认证,搭载海光芯片,构筑AI算力底座
AIGC 时代,算力作为新型生产力,是国家和企业构建竞争优势的关键。而随着传统计算方式无法满足新时代激增的算力需求,计算场景的多元化和计算应用的复杂化推动了 CPUGPU 异构平台的加速组建。在此全球激烈角逐的大趋势下,我国信创产…...

Vue单文件组件
一、.vue文件 我们使用Vue的单文件组件的时候,一个.vue文件就是一个组件。 例如我们创建一个School组件: 二、组件的结构 我们编写网页代码的时候有HTML结构、CSS样式、JS交互。 组件里也是同样存在这三种结构的: <template><d…...

轻松理解 Transformers(1):Input部分
编者按:Transformers 是人工智能领域近年来最引人瞩目的技术之一,它为语言生成模型的发展做出了巨大的贡献。随着大语言模型(LLM)的兴起,公众对其背后的技术原理也越来越感兴趣。但是由于Transformers本身具有一定的复…...

PHP MySQL 交互 笔记/练习
PHP 与 MySQL 交互 交互函数 函数名作用mysqli_connect()与MySQL 数据库建立连接。mysqli_close()关闭与MYSQL 数据库建立的连接。mysqli_connect_errno()与MySQL 数据库建立连接时,发生错误时的错误编号。mysqli_connect_error()与MySQL 数据库建立连接时&#x…...

领域驱动设计:基于DDD的微服务设计实例
文章目录 项目基本信息战略设计战术设计后续的工作 用一个项目来了解 DDD 的战略设计和战术设计,走一遍从领域建模到微服务设计的全过程,一起掌握 DDD 的主要设计流程和关键 点。 项目基本信息 项目的目标是实现在线请假和考勤管理。功能描述如下&…...
【PB续命02】Oracle中加密及编码等
Oracle中实现Md5/Base64/AesBase64/UrlEncode等加密编码的使用备忘,参考其它人的贴子,Oracle 11g 亲测有效。 1. Oracle中实现Md5加密 SELECT lower(MD5(白龙马5217)) FROM dual; --返回结果 72853926982028ab8219921ad2918b8f --或 select utl_raw.…...

STM32-LTC6804方案成熟BMS方案
方案下载链接!!https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247549092&idx1&snc73855c4e3d5afddd8608d8528864f95&chksmfcfb1373cb8c9a65a4bd1f545a1a587af882f209e7ccbb8944f4d2514d241ca1d7fcc4615e10&token539106225&a…...
一步一步认知机器学习
1,前言 之前学习并且实操了一些算法框架用来探索相关方向的可能性,但是总不了解相关的步骤。因为一步一步按照别人给出的步骤去操作,解决一些操作时出现的问题,基本可以达到目的。但是这个也基本限制了在那个框架而已。对于算法还…...

现代C++、STL、QTL的使用
0、现代C中最重要的是: 右值引用&&、移动语义std::move、完美转发std::forward、万能引用T&& void Func(int& x) { cout << "左值引用" << endl; } void Func(const int& x) { cout << "const左值引用…...

Android 备案公钥、签名 MD5获取方法
公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。 1 windows 下载 jadx-gui 工具 下载 jadx-gui 工具 在这里选择一个下载 下载后 解压文件 双击运行程序,然后选择 release apk安装包 2 Mac 打开终端&a…...

1688拍立淘接口,按图搜索商品接口,图片识别接口,图片上传搜索接口,图片搜索API接口,以图搜货接口
1688拍立淘接口的作用是让用户通过上传图片或输入图片链接的方式,调用1688的图片搜索引擎,返回与该图片相关的所有1688商品。 使用该接口需要先获取一个key和secret,然后参考API文档里的接入方式和示例,查看测试工具是否有需要的…...

H3C AC通过Web平台进行AC软件的升级?
软件升级的流程 1、获取软件版本 登录新华三官网(首页>产品支持与服务>文档与软件>软件下载),将指定的软件版本下载至本地。 无线路由器-无线接入点-无线控制器-新华三集团-H3C 官网软件下载公共账号密码:账号&#x…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...