小伙伴们在日常的工作学习中,或多或少的都会遇到,将书籍或者是资料文件,用手机进行拍摄,方便文档的保存,但是由于拍摄的角度或者是拍摄手法的原因,拍摄出来的照片往往会出现偏差,阅读起来也不方便。
今天,小编就为大家制作了一款简易的扫描器,帮助大家将拍摄的图片进行纠正,并将纠正的图片进行保存,一起来看看吧。
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爬虫神器太爽了,自动下载妹子图片点阅读原文,领廖雪峰视频资料!