卧槽!逆天了,Python竟然能打造一款扫描全能王,实现图片纠正!

本文介绍了一款使用Python和OpenCV制作的简易图片扫描器,能够自动纠正拍摄图片的偏斜,将其转换为正视图。通过边缘检测、角点检测和透视变换等步骤,软件能准确识别并校正类似书本或纸张的矩形目标,提升文档保存的便捷性和阅读体验。软件界面友好,用户可轻松上传图片、执行变换并保存结果。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

小伙伴们在日常的工作学习中,或多或少的都会遇到,将书籍或者是资料文件,用手机进行拍摄,方便文档的保存,但是由于拍摄的角度或者是拍摄手法的原因,拍摄出来的照片往往会出现偏差,阅读起来也不方便。

今天,小编就为大家制作了一款简易的扫描器,帮助大家将拍摄的图片进行纠正,并将纠正的图片进行保存,一起来看看吧。

01.效果展示

为了让大家对软件有更好的全面的认识,我们先通过视频展示的方式,来一睹为快。

02.程序讲解

接下来,我们通过程序的一点点解析,让大家更好的对软件有更好的认识。对于程序部分的讲解,我们可以拆解为两个部分:

  • 图片的纠正

  • 软件界面的构建


03.图片的纠正

对于图片的纠正,可以归结为边缘检测——>角点检测——>透视变换的过程,边缘检测的作用是检测图片中的图像的边缘,程序如下图所示。

04.边缘检测

程序通过opencv中的Canny函数来检测物体的边界,这里需要注意的是,有两个阈值数值需要调节:

  • 程序中分别用threshold_bar1和threshold_bar2两个滑动条来控制,threshold_bar2用来检测较为明显的边界;

  • 而threshold_bar1则是负责将threshold_bar2检测出来的边界进行连接,组成一个完整的物体边界信息;

通过dilate和erode函数来将边缘进行填充后,通过findContours函数,来得到物体的轮廓的位置坐标信息,程序中contours变量保存的是位置坐标数值。对于边缘检测后填充的效果,效果如下图所示:

05.角点检测

对于角点的检测,也就是对于轮廓中“角”的检测,程序如下图所示。

程序通过对于轮廓数值中每一组数值的面积计算,如果面积大于5000,就利用approxPolyDP函数对轮廓进行多边形的拟合操作;

如果拟合出来的图形是四边形的话,则说明该组轮廓数据下,检测到了类似于书本、纸张等矩形的目标,那么就返回approxPolyDP函数所拟合的四个角点坐标的数值。如下图所示。

06.透视变换

在得到拟合的角点数据之后,接下来就是要进行透视变换的操作,所谓的透视变换,可以理解为将偏斜角度拍摄的目标,转变为正视图。程序如下图所示:

程序将拟合得到的四个角点坐标,通过透视变换转变为480x640大小的正视图,程序中通过getPerspectiveTransform函数生成透视变换的变换矩阵,利用warpPerspective函数来完成对于原图的透视变换,其结果如下图所示:

07.软件界面的构建

软件界面的构建,利用的是PyQt5进行制作,其界面如下所示:

软件界面中,位于界面中央显示的是图像的展示区域,分别是原图展示,提取到的矩形目标以及最终的透视变换的结果图。

  • 界面中黄色的模块表示的是按钮控件,其中,“文件”按钮,表示选取本地的原始图片,“开始”按钮表示的是执行图片的投视变换,

  • 保存按钮则是将最终的透视变换结果进行保存。

  • “退出”按钮则是代表退出整个软件。

这里我们以“开始”按钮为例,解析一下其控制的函数。

“开始“按钮绑定openImg函数,当点击按钮时,程序通过getOpenFileName函数来选取本地的文件,获取得到本地文件的路径,并将本地的图片展示在界面当中。

08.总结

以上就是小编为大家分享的图片扫描器的内容,大家可以下载软件进行测试,需要注意的是,在图片拍摄的过程中,为了保证扫描器结果准确性,大家尽量保证拍摄图片的背景为单一的颜色,如上图中,原始图片中,书本的背景为单一的黑色,这样,最大程度的保证了结果的准确性。

觉得本篇不错的小伙伴,记得在留言区给个三连哦!

如何获取本篇资料:

在下面的公众号「菜鸟编程大本营」后台输入,小助手,备注暗号(扫描王)

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领廖雪峰视频资料!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

计算机视觉(Computer Vision)又称为机器视觉(Machine Vision),顾名思义是一门“教”会计算机如何去“看”世界的学科。在机器学习大热的前景之下,计算机视觉与自然语言处理(Natural Language Process, NLP)及语音识别(Speech Recognition)并列为机器学习方向的三大热点方向。在如今互联网时代,人工智能发展迅速,计算机视觉领域应用非常广泛,对人才的需求也是非常大,计算机视觉在IT领域的工资水平非常高,初级就能达到一个很好的薪资水平,学好计算机视觉,势在必得,增加自己的竞争力以及给自己一个好的薪水。 以下是计算机视觉部分应用场景,可以看到它的需求非常大:1.Google, MS, Facebook, Apple,华为,阿里,腾讯,百度等世界科技公司,无一没有建立自己的AI实验室,AI里面,计算机视觉或图像处理是非常重要的一块,当然它们研究方向就多了,几乎会涵盖所有方向。2.世界各大汽车公司,如特斯拉,宝马。汽车公司开始发力自动驾驶,而自动驾驶里面最核心的技术就是“教”汽车里的电脑如何通过摄像头实时产生的图片和视频自动驾驶。因此视觉和图像处理便是核心技术所在,如行人探测,道路识别,模式识别。3.Adobe,美图秀秀等照片、winrar、real player等视频处理、压缩软件。这个不多说,直观的应用,比如降噪,图像分割、图像压缩、视频压缩。4.AR(增强现实)最近由于Pockman GO的风靡全球又被推到第一线,而Google Class或者三星Gear眼镜等等,也无不和图像处理、计算机视觉的科研有关。预测这将是未来几年主推的东西。5.迪士尼等各大电影制片公司。3-D电影,以及各种炫酷的电影特效,当然里面不光有图像处理,还有计算机图形学的东西在里面。6.地平线,大疆无人机等机器人公司。和自动驾驶一个道理,机器人要通过摄像头“判断”并躲开前方障碍物,核心技术都在视觉和图像处理。7.医疗器械设备公司。医学图像处理,核磁共振,断层扫描等等,众所周知医疗行业都是暴利阿。8.工业级摄像头;包括高速路上的摄像头,机场火车站安检摄像头,工业流水线上的摄像头,嵌入了人脸或次品识别的芯片,智能地识别罪犯、次品,等等。 基于SpringBoot+Python多语言文档扫描处理和OCR识别系统,将以基础知识为根基,带大家完成一个强大的文档扫描处理和OCR识别系统,该系统将包含算法部分,算法服务,算法商业化api部分等。应用场景可以为:爬虫图片文字识别、文档图片自动整理和输出文字、实时扫描输出系统、PDF文档转换系统等等,算法可以商业化,系统同时实现了商业化api功能,商业价值非常高,大家可以基于课程项目的基础上进一步完善,做到商用,学到知识的同时,给自己额外增加收入。 本课程包含的技术: 开发工具为:IDEA、WebStorm、PyCharmPythonAnconaOpencvDjangoSpringBootSpringCouldVue+ElementUI+NODEJS等等 课程亮点: 1.与企业接轨、真实工业界产品2.强大的计算机视觉库OPENCV3.从基础到案例,逐层深入,学完即用4.市场主流的前后端分离架构和人工智能应用结合开发5.多语言结合开发,满足多元化的需求6.商业化算法api实现7.多Python环境切换8.微服务SpringBoot9.集成SpringCloud实现统一整合方案 10.全程代码实操,提供全部代码和资料 11.提供答疑和提供企业技术方案咨询
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值