先给大家展示效果图,感觉不错,请参考实现代码。

具体代码如下所示:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

"""

pip install pillow

pip install baidu-aip

pip install tkinter

"""

import PIL

import time

import base64

import tkinter as tk

from PIL import Image

from PIL import ImageTk

from aip import AipFace

from tkinter.filedialog import askopenfilename

# 配置百度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

class ScoreSystem():

"""打分系统类"""

root = tk.Tk()

# 修改程序框的大小

root.geometry('800x500')

# 添加程序框标题

root.title('女神/男神颜值打分系统')

# 修改背景色

canvas = tk.Canvas(root,

width=800, # 指定Canvas组件的宽度

height=500, # 指定Canvas组件的高度

bg='#E6E6FA') # 指定Canvas组件的背景色

canvas.pack()

def start_interface(self):

"""主运行函数"""

self.title()

self.time_component()

# 打开本地文件

tk.Button(self.root, text='打开文件', command=self.show_original_pic).place(x=50, y=150)

# 进行颜值评分

tk.Button(self.root, text='运行程序', command=self.open_files2).place(x=50, y=230)

# 显示帮助文档

tk.Button(self.root, text='帮助文档', command=self.show_help).place(x=50, y=310)

# 退出系统

tk.Button(self.root, text='退出软件', command=self.quit).place(x=50, y=390)

# 显示图框标题

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=265, y=150)

# 显示图片位置

self.label_img_original.place(x=265, y=150)

# 设置评分标签

tk.Label(self.root, text='性别', font=10).place(x=680, y=150)

self.text1 = tk.Text(self.root, width=10, height=2)

tk.Label(self.root, text='年龄', font=10).place(x=680, y=250)

self.text2 = tk.Text(self.root, width=10, height=2)

tk.Label(self.root, text='评分', font=10).place(x=680, y=350)

self.text3 = tk.Text(self.root, width=10, height=2)

# 填装文字

self.text1.place(x=680, y=175)

self.text2.place(x=680, y=285)

self.text3.place(x=680, y=385)

# 开启循环

self.root.mainloop()

def show_original_pic(self):

"""放入文件"""

self.path_ = askopenfilename(title='选择文件')

# 处理文件

img = Image.open(fr'{self.path_}')

img = img.resize((270, 270), PIL.Image.ANTIALIAS) # 调整图片大小至270*270

# 生成tkinter图片对象

img_png_original = 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)

def open_files2(self):

# 获取百度API接口获得的年龄、分数、性别

age, score, gender = face_score(self.path_)

# 清楚text文本框内容并进行插入

self.text1.delete(1.0, tk.END)

self.text1.tag_config('red', foreground='RED')

self.text1.insert(tk.END, gender, 'red')

self.text2.delete(1.0, tk.END)

self.text2.tag_config('red', foreground='RED')

self.text2.insert(tk.END, age, 'red')

self.text3.delete(1.0, tk.END)

self.text3.tag_config('red', foreground='RED')

self.text3.insert(tk.END, score, 'red')

def show_help(self):

"""显示帮助"""

pass

def quit(self):

"""退出"""

self.root.quit()

def get_time(self, lb):

"""获取时间"""

time_str = time.strftime("%Y-%m-%d %H:%M:%S") # 获取当前的时间并转化为字符串

lb.configure(text=time_str) # 重新设置标签文本

self.root.after(1000, self.get_time, lb) # 每隔1s调用函数 get_time自身获取时间

def time_component(self):

"""时间组件"""

lb = tk.Label(self.root, text='', fg='blue', font=("黑体", 15))

lb.place(relx=0.75, rely=0.90)

self.get_time(lb)

def title(self):

"""标题设计"""

lb = tk.Label(self.root, text='女神/男神颜值打分系统',

bg='#6495ED',

fg='lightpink', font=('华文新魏', 32),

width=20,

height=2,

# relief=tk.SUNKEN

)

lb.place(x=200, y=10)

score_system = ScoreSystem()

score_system.start_interface()

总结

以上所述是小编给大家介绍的使用python实现男神女神颜值打分系统,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python评委打分代码_使用python实现男神女神颜值打分系统(推荐)相关推荐

  1. python 运行程序代码_一些python程序

    <从问题到程序:用Python学编程和计算>--1.2 Python语言简介 本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 ...

  2. python好玩的代码_一行 Python 能实现什么丧心病狂的功能?

    能够把自身代码打印出来的程序,叫做Quine.下面是python的一行quine: ​有人说有分号不算一行,无分号版: 其实,如果你用程序语言的名字+quine作为关键字去搜索,你能找到各种语言实现的 ...

  3. python母亲节快乐代码_用 Python 送上特殊的母亲节祝福

    今天是母亲节,做儿女的自然要为母亲送上节日的祝福,如果自己在母亲身边的话,可以直接说几句祝福的话以及送一些小礼物什么的,要是不在母亲身边的话,可以打个电话问候一下. 当然了,作为一个程序员,除了上面的 ...

  4. python下载图片代码_使用Python下载Bing图片(代码)

    直接上代码: # -*- coding: cp936 -*- import urllib import os print 'Download data......' url = 'http://cn. ...

  5. python装b代码_一行python代码带你装B

    一行代码,python就能让你玩出花来.今天给大家介绍几个有趣的一行代码. 1.心形字符,全中文的话可能会变形,大家可以试试中英文搭配. print('\n'.join([''.join([('Ilo ...

  6. python计算面积代码_利用Python求阴影部分的面积实例代码

    利用Python求阴影部分的面积实例代码 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  利用Python求阴影部分的面积实例代码.txt ] (友情提示:右键点 ...

  7. python 背景音乐程序代码_用Python演奏音乐

    背景 笔者什么乐器也不会,乐理知识也只有中小学音乐课学的一点点.不过借助Python,调用编曲家常用的MIDI程序库,也能弹奏出一些简单的音乐,以下是笔者的一些心得. 准备 安装mingus 首先是安 ...

  8. python 运行部分代码_改改Python代码,运行速度还能提升6万倍

    如果摩尔定律注定终结,人类的算力会被「锁死」吗?MIT.英伟达.微软研究者合著的一篇 Science 论文告诉我们:不会. 这份最新研究指出,在后摩尔定律时代,人类所获得的的算力提升将更大程度上来源于 ...

  9. 用python写名字代码_用python编写一个批量修改文件名的小程序

    1.问题描述: 原有的视频文件按序排列,但是文件名没有对内容的说明,如下图所示: 原视频文件列表.jpg 想将其批量修改成如下文件名: 图2:要改成的文件名.jpg 最终想要的效果: ok.jpg 不 ...

  10. python重启程序代码_重启python程序

    跑程序跑到后面就越跑越慢了,就学习了一下重启程序的命令. 这是远程服务器跑的程序,亲测有用. import os import sys def restart_program(): print(&qu ...

最新文章

  1. 管理类软件设计“渔”之演化
  2. broker可以禁用吗 time_Win8.1系统Runtime Broker是什么进程?可以禁用吗?
  3. Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析
  4. python复制文件shutil_Python常用模块——文件复制模块shutil
  5. Vue源码分析 - compile.js
  6. 剑指offer之【树的子结构】
  7. development period
  8. java cp classpath_java -cp、java -jar、java -classpath
  9. 脚本重启电信天翼网关
  10. matlab 小波变换程序,matlab 小波变换
  11. Gitlab Code Review
  12. 从零到一学习计算机视觉:朋友圈爆款背后的计算机视觉技术与应用 | 公开课笔记...
  13. STVD汇编开发stm8
  14. PTA-C理论B类题库6-3使用函数求最大公约数(辗转相除法的实现)
  15. JavaSE学习摘要
  16. Chrome浏览器突然无法打开的解决方法
  17. Compound Words
  18. 农夫过河-广度策略 pta
  19. 2021考研数学真题试卷(数学一)
  20. Spring+mqtt 搭建物联网平台服务端

热门文章

  1. java运行环境安装及配置教程
  2. 推荐一款十分好用的本地查词软件——MDict
  3. 海信信号机后台服务器配置,海信自适应交通信号控制系统解决方案
  4. 推荐6本Java书籍,助你在Java路上更精进!
  5. 最新版mysql8.0.13如何汉化_mysql8.0.13下载与安装图文教程
  6. linux 命令赋权,linux赋权命令
  7. 数字电路(3)门电路(二)
  8. 基于stm32智能门锁系统
  9. ANT安装(亲测可用)
  10. Flex Builder 中视图状态