python软件_Python自制照片美颜软件~

fc80a9e005793641272dd72362a51a17.png

下午被一个骗子恶心到了,本来听公开课听得好好的,搞得心情极差,于是就中断了网课,听听音乐,写一下文章吧!

前期准备

9273aa7509dc4495486e6edbae594df7.png

①Python编译环境以及Python代码编辑器Pycharm的安装:请在【微信公众后台】找到【windows】下的软件目录去寻找!

②pip换成国内镜像源,请自行百度!

③【cmd】窗口或者是Pycharm的【terminal】输入:

pip install opencv-python

④更多项目:请star【github仓库】:

https://github.com/lures2019/lures2020-demos

实际效果演示:

9273aa7509dc4495486e6edbae594df7.png

在网上随便找的两张图片:

705cb4b22514709f016bcf9234117f79.png

【美颜前照片】

看起来,有点……

其实,两位小姐姐美颜后还是可以的……(广大朋友们以后找对象就不要看照片了吧~~~~)

5374473dcdc20a3b08a6a995ba030457.png

【美颜后照片】

设置的美颜程度是40,搞成100的话有点虚…………

不管怎么说,美颜后看起来比美颜前好看多了~~~

【实际演示】

实际演示中注意的问题:

既可以是绝对路径,eg:C:/Users/HP/Desktop/queban.jpg

也可以是放到软件所在的目录,直接输入图片名称

①图片保存最好是【英文形式的】,中文可能有bug

②无法解析在线的图片地址

③封装的时候我遇到了bug,我没法解决!

源代码:

9273aa7509dc4495486e6edbae594df7.png
from tkinter import *import cv2          # pip install opencv-pythonfrom tkinter import messageboximport osdef fix_photo():    content = entry.get()    con = content.strip()    name = con.split(r'.')[0].split(r'/')[-1]    if con == "":        messagebox.showinfo("提示","请输入正确的照片的路径!")    else:       try:           image = cv2.imread(con)           value = 40           # value是美颜程度,值越大程度越大,值越小程度越小           image_dst = cv2.bilateralFilter(image, value, value * 2, value / 2)           # 把美颜后的效果生成一张照片           path = 'photos_after_beauty'           if not os.path.exists(path):               os.mkdir(path)           cv2.imwrite(path + '/' + "%s.jpg" % (name), image_dst)           messagebox.showinfo("提示", "图片已经美颜成功!")       except EXCEPTION as error:           pass       # 自动清空输入框内容       entry.delete(0,END)window = Tk()window.title("Python美颜工具1.0")window.geometry("300x100+200+200")window.resizable(0,0)label = Label(window,text="图片地址:",font=("仿宋",12))label.grid(row=0,column=0)entry = Entry(window,width="28")# entry不能和grid连写,否则会报错entry.grid(row=0,column=1)label2 = Label(window,text="").grid(row=1,column=0)label3 = Label(window,text="").grid(row=2,column=0)button1 = Button(window,text="开始美颜",font=("仿宋",12),command=fix_photo)button1.grid(row=3,column=0)button2 = Button(window,text="退出软件",font=("仿宋",12),command=window.quit)button2.grid(row=3,column=1,sticky="e")window.mainloop()

简单介绍一下cv2库:

9273aa7509dc4495486e6edbae594df7.png

大家,看到了代码就知道了:主要是tkinter和cv2库

tkinter我就不介绍了,前面几个项目都已经用过了!

主要是来说一下opencv for Python中的cv2库吧!

opencv在Python中主要是图像处理和机器学习方面,功能强大!

这边我就简单说一下cv2的加载图片+图片模糊+图片美颜!

1)加载图片:

import cv2          # pip install opencv-python# 1、加载一张目标图片image = cv2.imread("qingchundou.jpeg")# 2、创建一个窗口,用来展示图片cv2.namedWindow("window")# 3、定义一个函数:实时鼠标状态的点击def draw(event,x,y,flags,param):    if event == cv2.EVENT_LBUTTONDOWN:        print('鼠标->按下')    elif event == cv2.EVENT_MOUSEMOVE:        print('鼠标->滑动')    elif event == cv2.EVENT_LBUTTONUP:        print('鼠标->抬起')# 4、监听鼠标事件的回调cv2.setMouseCallback('window',draw)# 5、展示窗口cv2.imshow('window',image)# bug闪退,窗口无线等待,等着用户来操作cv2.waitKey()# 6、销毁窗口,优化cv2.destroyAllWindows()

这时候,就会有一个窗口加载图片:

edec33995d6b6c45a9a6428227d375d6.png

2)图片模糊处理:

import cv2          # pip install opencv-pythonimage = cv2.imread('qingchundou.jpeg')# 图片模糊,第一个参数:模糊的对象,第二个参数:模糊程度的大小,值越大,程度越大image_dst = cv2.blur(image,(15,15))cv2.namedWindow("window")cv2.imshow('window',image_dst)cv2.waitKey()cv2.destroyAllWindows()

ba57920615cfe2dc8cf617c7c899d8ca.png

总结

9273aa7509dc4495486e6edbae594df7.png

opencv是一个很强大的库,支持多个编程语言!大家有兴趣的可以试一试!

ca45b43ce9ebbf829131abfb6f8c8589.png

原创不易

点亮在看,拜谢!

7508cbae037da6183ed09066c73c1986.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击...

今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法。我们都知道,图片格式当中有一种叫做svg,这种格式的图片无论我们将它放大多少倍,也不会失真更不会出现边缘模糊的情况。原因也很简…

常用命令_GIT常用命令大全

Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。克隆远程文件:git clone https://gitee.com/abcd/codefile.git projectgit checkout -b dev(本地分支名称) origin/dev(远程分支名称…

nvidia显示设置不可用_Nvidia显示设置不可用,您当前未使用连接到NVIDIA GPU的显示器的解决方法...

相信不少用户遇到这样一个问题,就是新购买的台式机电脑,配置达标的情况下,玩游戏出现卡顿不流畅的现象,准备在NVIDIA控制面板查看是否设置的问题,在打开NVIDIA控制面板的时候,提示了“Nvidia显示设置不可用…

oracle tns 代理配置_Toad for oracle安装配置与使用

一.toad安装与配置注意:toad的使用本机电脑必须安装完整版oracle客户端,不能是精简版的.1.1完整版oracle客户端的安装.1.解压文件,安装oracle客户端打开安装包,找到setup.ext,开始安装。提示下图弹窗,可根据此网址内容进行更改(https://blog.…

吴枫 python小课账号_无门槛速学编程——Python小短课,自上而下分而治之

【Python小短课 11】自上而下,分而治之 做任何事都需计划,编程也是。 譬如写文章要列大纲、作画要想布局,编程也需先谋全局,而后思虑细节。 就以上回说到的“找宝藏”这个程序举例,最顶层的需求自然就是“找宝藏”&…

计算机本地磁盘D无法扩展,计算机上的本地磁盘D突然无法打开,表明它需要格式化...

接受使用数据恢复软件将重要数据保存到其他磁盘FindDate特定操作: 运行软件----“打开”后,将显示要还原的驱动器. C \ D \ E \ F选择您要还原的一个,它将开始. 扫描后,再次保存扫描的文件. 哈哈,希望对您有所帮助.最后&#xff0…

caffe运行不停止_caffe(gpu)安装过程及问题解决

2019.12.05 caffe(gpu)安装参考网址:教程1:weiliu89/caffe​github.com教程2:https://blog.csdn.net/yggaoeecs/article/details/79163789​blog.csdn.net环境:Ubuntu16.04cuda10.0安装过程:git clone https://github.…

2021年考计算机考研三战,2021考研的小伙伴有3条忠告一定要记得,这些都是历年实战经验...

2021考研的小伙伴有3条忠告一定要记得,这些都是历年实战经验,考研一定要记得避开三个大坑。1,分数线低的学校就一定容易考。有一些学校分数线看着很低但实际上难度不低,比如首都师范大学 ,很多专业就是国家线录取甚至招…

c++ 返回string_JVM系列之:String.intern和stringTable

简介StringTable是什么?它和String.intern有什么关系呢?在字符串对象的创建过程中,StringTable有起到了什么作用呢?一切的答案都在本文中,快来看看吧。intern简介intern是String类中的一个native方法,所以它…

华为 虚拟键盘_华为mate30 pro虚拟机械键盘特有体验,虽是虚拟,但却感受逼真...

华为Mate30 pro已于26日在国内正式发布了。此外,根据了解华为Mate30系列现在已经突破了5亿的销售额。看来,华为的这个下半年旗舰手机非常受欢迎啊。华为Mate30系列现在在国内已经发布了,其整体感官看上去与海外的没有多大的区别。其实&#x…

计算机有什么著名基金经理排名,百万年薪的基金经理,都是什么专业出身?!...

有人会说了“小哔君你四不四撒!基金经理肯定是金融专业出身的咯?不然嘞?”但事实的真相是许多基金经理都并非科班出身这要从基金经理的晋升机制说起了!如下图基金经理都是从研究员做起的!那么问题来了,如何…

遍历children_589. N叉树的前序遍历

589. N叉树的前序遍历给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单,你可以使用迭代法完成此题吗?题解:既然是树的遍历,那么一共就是两种思路&a…

计算机未显示移动硬盘,电脑不显示移动硬盘怎么办_移动硬盘已连接不显示解决教程...

最近有很多小伙伴咨询小编,电脑不显示移动硬盘怎么办,怎么设置才能恢复呢?其实操作内容很简单,尝试删除你的USB3.0可扩展主机控制器,再扫描硬件改动,今天就由小编来告诉你,移动硬盘已连接不显示的解决方法。…

八个角最多可以把平面分成多少部分?_一个空间最多能被分成几块?

相信大家在小学奥数中都遇到这样一个问题:4条直线最多能将平面分成几部分?这个问题并不能难倒我们,但是如果将问题改为:4个平面最多能将空间分为几部分?这下子我们可能就要放弃了。为了解决这个问题,今天我…

破坏计算机信息系统功能罪,破坏计算机信息系统罪

破坏计算机信息系统罪2010年05月05日19:42法律咨询 我要评论一、概念&nbsp&nbsp&nbsp&nbsp破坏计算机信息系统罪(刑法第286条),是指违反国家规定,对计算机信息系统功能或计算机信息系统中存储、处理或者传输的数据和应用程序进行破坏…

东京战纪服务器维护中,东京战纪7月21维护公告 当前测试进度介绍

东京战纪当前的测试进度已经有了很大的进步,接下来小编就跟大家一起看看测试期间对玩家给大家的报告吧。亲爱的喰种和CCG搜查官们7月19日中午12:00,我们怀着紧张又忐忑的心情开启了《东京战纪》官网限量删档技术测试。大家对《东京喰种》IP的热爱和对《东…

docker重启后容器消失_docker设置固定ip地址

代码来源:博客园 原文作者:雪之谷 原文链接:https://www.cnblogs.com/xuezhigu/p/8257129.html 本文版权归原作者所有,如有侵权请立即与我联系,我将及时处理。 背景: 我开发用的机器上边会启动几个容器,就因为保洁阿姨碰了一下我的插排,我的机器被断电关机了。 默认情况下…

模型稳定后放在服务器上,把工程放在服务器上

把工程放在服务器上 内容精选换一换获取方式:Ascend-mindx-msinstaller_{version}.zip:获取链接适用场景:在一台Linux服务器上使用msInstaller工具给本机安装开发或运行环境。在一台Linux服务器上使用msInstaller工具远程给昇腾AI设备安装开发…

html计算器_学习HTML、CSS和JavaScript的最佳方法是什么?

与其他后端语言相比,HTML、CSS和JavaScript无论从阅读角度还是编写的角度来说都更加容易一点。所以新手在学习前端知识的时候不必有太大的心理压力 ,心态摆正后,大部分人都可以将前端学好。下面聊聊Html、CSS、JavaScript的最佳学习方法&…

网站重新解析换服务器,更换解析服务器地址

更换解析服务器地址 内容精选换一换普通的域名解析只为用户返回解析记录,不会考虑访问者的来源,这样所有的访问者都被解析到相同的IP地址上,容易出现由跨运营商访问引起网络延迟。运营商线路解析是云解析服务提供的按运营商维度来区分访问者来…