<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python計(jì)算出小姐姐的顏值數(shù),看看你的女神顏值多少

          共 2486字,需瀏覽 5分鐘

           ·

          2020-03-07 23:23



          f9a1678255c7b485ac90127763ed831e.webp


          閱讀文本大概需要 3 分鐘。

          現(xiàn)在很多拍照軟件都有顏值測(cè)試及年齡識(shí)別功能,經(jīng)過(guò)研究,發(fā)現(xiàn) Python 也能實(shí)現(xiàn),今天主要用 PyQt4 做個(gè)可視化工具,然后調(diào)用百度人臉識(shí)別api,識(shí)別出人臉的性別、年齡及顏值,下面一起來(lái)看看怎么實(shí)現(xiàn)的吧!

          第一步:創(chuàng)建工具主窗口

          PyQt5創(chuàng)建主窗口有其固定的套路,首先要?jiǎng)?chuàng)建應(yīng)用程序?qū)ο螅篴pp=QApplication(sys.argv),參數(shù)sys.argv是命令行參數(shù),這使得可以在電腦系統(tǒng)終端執(zhí)行程序時(shí),傳入命令參數(shù),來(lái)執(zhí)行不同的邏輯代碼。執(zhí)行應(yīng)用程序?qū)ο螅M(jìn)入消息循環(huán)等待退出: sys.exit(app.exec_()),代碼如下。

          app?=?QApplication(sys.argv)
          show?=?Window()??#?主窗口的類
          show.setFixedSize(500,?200)
          show.show()
          sys.exit(app.exec_())

          其中, Window()是識(shí)別工具的類,窗口大小為 500X200

          再為該窗口添加標(biāo)題和圖標(biāo)

          self.setWindowTitle("顏值識(shí)別工具")
          self.setWindowIcon(QIcon('圖標(biāo).jpg'))

          效果如下:

          6cc849fabaca3fdc71dba9f85b8d79f3.webp

          第二步:以網(wǎng)格布局方式放控件

          PyQt5有5種布局方式,分別是絕對(duì)布局、水平布局、垂直布局、網(wǎng)格布局和表單布局,本程序只采用網(wǎng)格布局,其余布局方式各有特點(diǎn),感興趣的朋友可以研究一下。

          1. 用QTextBrowser創(chuàng)建選擇圖片、瀏覽標(biāo)簽,分別為110x25和60x40大小,用QpushButton創(chuàng)建瀏覽、開始分析按鈕,并綁定setBrowerPath和start函數(shù)(后續(xù)會(huì)提到),網(wǎng)格布局需要用到addWidget函數(shù),它的4個(gè)參數(shù)分別代表放置的內(nèi)容、放置行數(shù)、放置的列數(shù)、放的位置。


          86c87ae4e897a2791e2bdef52136510f.webp


          009954fc406c637b5e1440564c8a957c.webp

          2.放置性別、年齡、顏值標(biāo)簽,分別放置在第 4、5、6 行的1和2列位置。


          caa2c49190127518a70ba3771e6d8b8b.webp


          4eac6bdc2e8e23b9d55db3b614b810bf.webp

          3.綁定“瀏覽”、“開始分析”信號(hào)槽

          首先是綁定“瀏覽”信號(hào),先實(shí)例化QfileDialog,然后設(shè)置可以打開任何文件,接著設(shè)置文件過(guò)濾,選擇接受選中文件的路徑,默認(rèn)為列表,再取出文件路徑。

          def?setBrowerPath(self):
          ????dig=QFileDialog()
          ????dig.setFileMode(QFileDialog.AnyFile)??#?設(shè)置可以打開任何文件
          ????dig.setFilter(QDir.Files)?#?文件過(guò)濾
          ????if?dig.exec_():
          ????????#?接受選中文件的路徑,默認(rèn)為列表
          ????????filenames?=?dig.selectedFiles()
          ????????self.picfile=filenames[0]????????????????????????

          ????????self.pathText.setText(self.picfile)

          ????????#?列表中的第一個(gè)元素即是文件路徑,以只讀的方式打開文件



          e937c5147f285f6043ec6e90e7422882.webp

          然后是綁定“開始分析”信號(hào)

          1.進(jìn)入百度云人臉識(shí)別控制臺(tái)

          https://console.bce.baidu.com/ai/?_=1528192333418&fromai=1#/ai/face/overview/index

          沒(méi)有賬號(hào)的要注冊(cè)的話

          2.創(chuàng)建人臉識(shí)別應(yīng)用

          262c2a996a93204f5c4c5fca72efbd02.webp

          3.創(chuàng)建成功后獲得API key和Secret Key

          54b8d1940e88b421ea374e68c87e3a36.webp


          1. 獲取調(diào)用接口所需的Access Token

          client_id?=?''?#API?Key
          client_secret?=?''?#Secret?Key
          url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={0}&client_secret={1}'.format(client_id,client_secret)

          data=requests.get(url,?headers=header)

          access_token=json.loads(data.text)['access_token']

          其中client_id是API_key的值,client_secret是Secret_Key的值,返回的access_token用于人臉調(diào)用接口進(jìn)行人臉識(shí)別。

          5.打開圖片路徑,并轉(zhuǎn)成BASE64格式

          1e7a2930b0b92485acb127a8f97bb13d.webp

          6.構(gòu)造識(shí)圖請(qǐng)求參數(shù),獲得返回結(jié)果

          params?=?{'image':?img,
          ????????????'image_type':?'BASE64',
          ????????????'face_field':?'age,beauty,gender,face_type,face_shape,expression,landmark'}

          url?=?'https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token={0}'.format(get_access_token())
          results?=?requests.post(url,?data=params,?headers=header)
          results?=?json.loads(results.text)

          Img是圖片信息,image_type是圖片格式,face_field是返回的識(shí)別信息,包括年齡、顏值、性別等信息,我們只取顏值、性別、年齡3類信息。
          7.將返回結(jié)果放入上述文本顯示框內(nèi)

          3d0e4d16479afc5cfba62bb1e4532ec2.webp

          第三步:效果展示

          用我自己的照片和女神迪麗熱巴的照片比較一下

          女神果然是女神,雖然我平時(shí)也以帥哥自稱,但是在真正的實(shí)例派面前還是有差距的??!

          趕緊行動(dòng)起來(lái),用 Python 測(cè)測(cè)你和女神的顏值差距。

          本文全部代碼在公眾號(hào)「程序IT圈」輸入框輸入?顏值 獲取。

          82141867aebbdf12edc00e01dcf61b3a.webp

          ec2c982ec13cf8d73f2d7af55ca3f600.webp

          如何用Python畫一只機(jī)器貓?


          教你用Python玩轉(zhuǎn)histogram直方圖


          聊聊 Python 自動(dòng)化腳本打包成 APK


          叨叨 Python 性能優(yōu)化工具


          瀏覽 119
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜间福利无码视频无码 | 日韩成人免费 | 插人网站在线看 | 性大毛片视频 | www.操b|