目录

一、引入#

二、注册百度API#

三、用Python调用百度API#

四、用Tk做一个界面#


任何有关Python、后端开发、爬虫、数据结构与算法、大数据分析、机器学习、深度学习的内容知识~~~

欢迎加入我们的学习基地前来学习交流(学习基地点这里)(52G视频资料点这里)!!!


一、引入

杨幂和杨超越到底谁更美,用Python做了一个女神颜值打分系统

101啊呀天气越来越热啦,校园里,地铁上的美女小姐姐越来越多,都说夏天是恋爱的季节,到时什么样的才算是美女呢?其实我还是觉得电视上的女神好看

~~看小美和小灰已经开始理论起来了,各执一词。

下面就来讲讲我设计的这套颜值打分系统,先上图片让大家看一下效果,比如看一下杨幂的颜值如何:

怎么样,结果是相当的精准吧,大家是不是已经跃跃欲试了呢?下面就针对该颜值打分系统进行讲解。

二、注册百度API

该系统最为核心的部分就是颜值的打分,这里其实是直接采用的是百度的人脸检测平台,大公司,打得分靠谱有保障,大家只需要打开下面的网址:

http://ai.baidu.com/tech/face 然后点击“立即使用”后,创建自己的应用即可

创建应用后,我们便可以得到自己的APP_ID 、API_KEY和SECRET_KEY 值,如下图所示:

这三个值相当于我们的门牌号和钥匙,只有有这些值,我们才能够“打开门”。

三、用Python调用百度API

我们注册好了api之后,百度提供了Python接口,我们直接安装之后就可以非常方法的使用了。省去了我们自己用深度学习搭建模型的麻烦,有API真心好啊。

  • 先安装pip install baidu-aip 这个包非常重要,一定要先安装,然后引入AipFace这个库;
  • 接着我们需要把图片读取出来,因为图片是二进值的,所以我们用rb读取,然后把二进制的数据用base64加密,传给百度后端。
  • 然后调用aFace这个接口,把数据喂给它,获取它的json返回值,我们这里只取了年龄,颜值和性别。

下面看一下核心的代码:

# 配置百度aip参数
APP_ID = '15768642'
API_KEY = 'xhiiGmGPRCRj10XIqVlVeCky'
SECRET_KEY = 'ZDMMAO7StwTKzW8BspVQxvoGtdgSW4yI'
a_face = AipFace(APP_ID, API_KEY, SECRET_KEY)
image_type = 'BASE64'options = {'face_field': 'age,gender,beauty'}def get_file_content(file_path):"""获取文件内容"""with open(file_path, 'rb') as fr:content = base64.b64encode(fr.read())return content.decode('utf8')def face_score(file_path):"""脸部识别分数"""result = a_face.detect(get_file_content(file_path), image_type, options)print(result)age = result['result']['face_list'][0]['age']beauty = result['result']['face_list'][0]['beauty']gender = result['result']['face_list'][0]['gender']['type']return age, beauty, gender

四、用Tk做一个界面

因为Python自带tk库,做GUI比较方便,我们这次的颜值打分系统直接用tk来完成。有兴趣的小伙伴可以用web搭建一个网页来玩一玩,大家先看一下我们搭建的界面:

界面还是很简单的,主要的功能按钮在左右两边,左边是输入和运行,以及帮助按钮,右边是输出的结果,下面列出部分核心代码:

    def start_interface(self):tk.Button(self.root, text='打开文件', command=self.show_original_pic).place(x=50, y=120)# 进行颜值评分tk.Button(self.root, text='运行程序', command=self.openfiles2).place(x=50, y=200)# 显示帮助文档tk.Button(self.root, text='帮助文档', command=self.show_help).place(x=50, y=280)# 退出系统tk.Button(self.root, text='退出软件', command=self.quit).place(x=50, y=40)tk.Label(self.root, text='原图', font=10).place(x=380, y=120)self.label_img_original = tk.Label(self.root)self.cv_orinial = tk.Canvas(self.root, bg='white', width=270, height=270)self.cv_orinial.create_rectangle(8, 8, 260, 260, width=1, outline='red')self.cv_orinial.place(x=260, y=150)self.label_img_original.place(x=260, y=150)tk.Label(self.root, text='性别', font=10).place(x=780, y=120)self.text1 = tk.Text(self.root, width=10, height=2, font=('Helvetica', 10))tk.Label(self.root, text='年龄', font=10).place(x=780, y=220)self.text2 = tk.Text(self.root, width=10, height=2, font=('Helvetica', 10))tk.Label(self.root, text='评分', font=10).place(x=780, y=320)self.text3 = tk.Text(self.root, width=10, height=2, font=('Helvetica', 10))# tk.Text.configure(font='\Library\Fonts\Heiti.ttc')self.text1.place(x=760, y=150)self.text1.place(x=760, y=250)self.text1.place(x=760, y=350)self.root.mainloop()

4个button都绑定了对应的函数;

  • 打开文件绑定show_original_pic()
  • 运行程序绑定open_file2()
  • 帮助文件绑定show_help()
  • 退出软件绑定quit()

比如我们的打开文件button 就是绑定show_original_pic这个函数,读取图片文件,读取图片要用PIL模块来读取:

def show_original_pic(self):self.path_ = tk.askopenfilename(title='选择文件')print(self.path_)img = PIL.Image.open(fr'{self.path_}')img = img.resize((270,270),PIL.Image.ANTIALIAS)  # 调整图片大小至270*270img_png_original = tk.ImageTk.PhotoImage(img)self.label_img_original.config(image=img_png_original)self.label_img_original.image = img_png_original  # self.cv_orinial.create_image(5,5,anchor='nw',image=img_png_original)

点击运行按钮,就是调用open_files2函数来获取我们前面的face_core函数分析的图片的年龄,颜值,性别,然后把这3个值填入到右边的文本框即可。

写了这么多,大家想不想知道到底是杨幂的颜值高还是杨超越的颜值高,我运行了一下程序,发现还是杨幂的颜值高呀。

Python是不是很神奇有趣,自动动手打造一个颜值评分系统,用数字给喜欢的女神打分。想想如果迪丽热巴和古力娜扎PK,到时谁更美。

想要源码的同学可以添加我们的学习基地免费获取:(Python:1108281869)

【Python实例】Python五分钟码出—女神颜值打分系统(人脸识别)!相关推荐

  1. 使用Python,OpenCV,本地二进制模式(LBP)进行人脸识别

    使用Python,OpenCV与本地二进制模式(LBP)进行人脸识别 1. 效果图 2. 原理及步骤 2.1 原理 2.2 步骤 3. 源码 参考 在深度学习和暹罗网络之前,面部识别算法依赖于特征提取 ...

  2. python打分_做一个Python颜值打分系统,比比看杨幂和杨超越到底谁更美?

    下面就来讲讲我设计的这套颜值打分系统,先上图片让大家看一下效果,比如看一下我的女神杨幂的颜值如何: 怎么样,结果是相当的精准吧,大家是不是已经跃跃欲试了呢?下面就针对该颜值打分系统进行讲解. 01. ...

  3. 做一个Python颜值打分系统,比比看杨幂和杨超越到底谁更美?

    下面就来讲讲我设计的这套颜值打分系统,先上图片让大家看一下效果,比如看一下我的女神杨幂的颜值如何: 怎么样,结果是相当的精准吧,大家是不是已经跃跃欲试了呢?下面就针对该颜值打分系统进行讲解. 01. ...

  4. 人脸识别实例-颜值打分系统简易版

    知识点: 创建百度AI 人脸识别应用,获取自己的[APP_ID].[API_KEY].[SECRET_KEY] 查看SDK文档,调用人脸识别接口,实现颜值打分系统 实现步骤: 搜索[百度大脑],打开[ ...

  5. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

  6. 老滚5初始化python失败_五分钟学会怎么用python做一个简单的贪吃蛇

    Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发.我们今天将利用它来制作一款大家基本都玩过的小游戏--贪吃蛇. 一.需要导入的包 import pygame ...

  7. 怎样保存python源程序_五分钟教会你如何编写、保存与运行 Python 程序

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  8. 基于Python的(拍照签到+网课在线检测)深度学习的人脸识别系统

    摘 要 近年来,网络技术日新月异,我们已经进入了大数据的时代并成为其中第一员,由此带来数据量的飞跃式的增长,而如何利用这些数据产生实际的生产价值则成为了大数据时代的一个重要问题.而人脸识别技术是一份对 ...

  9. Python 计算机视觉(十六)—— 图像和视频中的人脸识别

    参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...

最新文章

  1. 解决eclipse编译的几种方法
  2. 调整cisco参数设置
  3. xml.query() 实例演示
  4. 前端学习(2664):vue3.0的todolist控制完成和未完成
  5. C#中的DES加解密方法
  6. suse linux系统备份,suse linux enterprise server 11 sp3 版克隆安装ebs r12.1.3注意事项
  7. 敏捷开发日常跟进系列之三:故事板,看板
  8. python当前日期时间_Python当前日期时间
  9. jsonready onload 与_漫谈JSONP以及img的onLoad和onEr
  10. 检测用户浏览器是否支持cookie
  11. JAVAME 还有钱途么?
  12. 电脑网线连接无线路由扩展设置
  13. 西瓜书习题4.3 决策树
  14. Windows 2003 Server报 由于这台计算机没有远程桌面客户端访问许可证
  15. java ee框架技术进阶式教程_《JavaEE框架技术进阶式教程》新版任务式教案
  16. 如何修改aix服务器lv的名称,aix 更改lv的大小 smitty extendlv
  17. 深度链接 Deep Link 开发遇到的坑
  18. 我眼中的大数据(一)
  19. 2021年临颖一高高考成绩查询,2021年漯河高考状元是谁分数多少分,历年漯河高考状元名单...
  20. Java_JDBC及连接池

热门文章

  1. excel 妙用选择性粘贴
  2. 基于JavaSwing开发蜘蛛纸牌游戏 课程设计 大作业源码
  3. 广告电商系统开发功能只订单处理
  4. Android从网页中跳转到APP
  5. 新零售赋能最古老产业 看阿里巴巴的农产品上行布局
  6. 打开计算机管理窗口命令,Win7如何打开命令行窗口?打开命令行窗口的方法
  7. 植发搞笑图片_植发失败实例:头发没长出来还更秃了?詹姆斯也没能幸免,可怕...
  8. STM32三种BOOT启动模式详解(全网最全)
  9. ecshop添加多国货币
  10. 关于语义分割预测出来的图片全黑的解决办法