python 两点曲线_十行代码,用Python做一个迷你版的美图秀秀

beb6d397e0fb6954c5e671d6d8bd6696.png

美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让人变得更加的美丽。今天小编就带领大家来借助Python和Flask来实现一个美图秀秀的网页设计,大家只需要通过网页上传需要美颜的图片,然后就可以从网页下载美颜好的图片。

01

整体设计

首先我们需要实现的是美图秀秀的功能,在一幅图中,我们看起来的非常粗糙的点,可以视作是一些噪声,而我们就需要借助工具去去除这些噪声,使得图像看起来更加平滑。 这里我们采用的是双边滤波来过滤掉这些噪声。双边滤波是将图像的像素点从空间上的邻近程度,和像素值之间的相似程度两个方面去考虑,从而叫做双边,即同时考虑两方面的信息。如下图所示 :

123e54d6dd7712f3e14b076b1c76f758.png

上图中的两点就是我们的两个像素,他们之间的空间距离体现出了邻近程度,而两个像素值的大小(图中的70、80)则是体现出了像素之间的像素值相似度。双边滤波可以很好的保留图像中的边缘细节,使得我们的图像在很好的过滤噪声的同时,使得图像不会过于的失真,也就是使得图像看起来很自然,P的痕迹不明显。 程序如下图所示:

75faf0a83e8c839a15cc27d41695a01c.png

这里我们使用opencv中集成的双边滤波算法,这个value值表示在过滤的过程中,图像中的每个像素领域的直径范围,这个值越大,图片中的噪声滤除的越好,但是图片看上去也会越像是P过的,而这个值越小,则图片美颜的效果会越差。

这里小编实验得出,28左右时效果比较好,我们使用opencv读入图片,然后将图片进行滤波,将滤波后的图片写入到指定的本地文件中,并将文件的路径返回。下图展示的是美颜前后的图片对比,可以看出,美颜效果还是很好的,只用区区十行代码就可以完成美颜的效果。

1338285e6a14b37226145cc68782983e.png

02

用Flask操刀实战

接下来我们就来完成Flask部分的编写,Flask是基于python的轻量级 Web 应用框架。上手也比较快,程序如下图所示。

41da4b7c0d3fff49414668d67418e71c.png

程序中首先调用index函数,并返回我们写好的index.html的网页,我们只需点击程序给出的默认链接,便会自动打开网页,如下图所示。

08b6cdbb0e59576105823ac2dae6768c.png

在网页中我们点击选择文件,选择我们需要美颜的图片,然后点击上传,网页便会将我们提交的表单信息返回,程序便会跳转到我们的beauty子页面并执行我们写好的beauty函数。 在函数中,我们首先取出的图片名称,并判断我们上传的图片类型是不是符合我们的要求,然后我们执行之前写好的美颜函数Beauty,将美颜好的图像进行保存,并返回保存的路径。 接着我们再将路径信息提供给网页,网页通过html标记语言,访问美颜图片的路径进行显示,效果如下所示:

16b7d8dd7adef88406108b7691cf1049.png

我们接下来就可以将美颜好的图片进行另存为即可。 最后,小编以视频的形式来展现一下程序的整个流程,大家如果喜欢的话,就可以现在下载源码,学习起来吧。

视频展示:

关于源码,我们到时会录制视频,详细跟大家讲一下步骤和源码解读,会放在B站上,敬请期待!

另外说一下,我们B站的名字被抢注了

目前菜鸟学Python B站的官方号

菜鸟玩Python

5ec32df8438507158112d943ee162be8.png

目前已完成的视频录制如下:

  • 用Python做一个元宵节的灯谜小程序

  • 用Python集齐五福

  • 用Python批量做海量的小姐姐素描图

  • 用Python做一个缩放自如的圣诞老人

293f3ffbe6970616fc99b519fd4cbf1b.gif 点击阅读原文,尝鲜B站视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值