使用python实现男神女神颜值打分系统(推荐)
先给大家展示效果图,感觉不错,请参考实现代码。
具体代码如下所示:
#!/usr/bin/envpython #-*-coding:utf-8-*- """ pipinstallpillow pipinstallbaidu-aip pipinstalltkinter """ importPIL importtime importbase64 importtkinterastk fromPILimportImage fromPILimportImageTk fromaipimportAipFace fromtkinter.filedialogimportaskopenfilename #配置百度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'} defget_file_content(file_path): """获取文件内容""" withopen(file_path,'rb')asfr: content=base64.b64encode(fr.read()) returncontent.decode('utf8') defface_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'] returnage,beauty,gender classScoreSystem(): """打分系统类""" root=tk.Tk() #修改程序框的大小 root.geometry('800x500') #添加程序框标题 root.title('女神/男神颜值打分系统') #修改背景色 canvas=tk.Canvas(root, width=800,#指定Canvas组件的宽度 height=500,#指定Canvas组件的高度 bg='#E6E6FA')#指定Canvas组件的背景色 canvas.pack() defstart_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() defshow_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) defopen_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') defshow_help(self): """显示帮助""" pass defquit(self): """退出""" self.root.quit() defget_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自身获取时间 deftime_component(self): """时间组件""" lb=tk.Label(self.root,text='',fg='blue',font=("黑体",15)) lb.place(relx=0.75,rely=0.90) self.get_time(lb) deftitle(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实现男神女神颜值打分系统,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。