精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

GUI布局Tkinter完善Python小項(xiàng)目

開(kāi)發(fā) 后端
本次 Python 小項(xiàng)目主要功能:調(diào)用電腦攝像頭實(shí)現(xiàn)拍照,并使用百度 API 接口實(shí)現(xiàn)圖像識(shí)別。

[[356025]]

 本次 Python 小項(xiàng)目主要功能:調(diào)用電腦攝像頭實(shí)現(xiàn)拍照,并使用百度 API 接口實(shí)現(xiàn)圖像識(shí)別。

上次完成了API的封裝,這次完成GUI的布局。具體成品如下所示。

拍照保存圖片采用的是opencv中的imwrite方法,具體的示例查看上上篇文章。

Tkinter 布局邏輯中最推薦使用的Grid布局。實(shí)現(xiàn)機(jī)制是將Widget邏輯上分割成表格,在指定的位置放置想要的Widget就可以了。

Grid布局參數(shù)說(shuō)明

具體main.py代碼如下。

  1. ""
  2. @Author:Runsen 
  3. @WeChat:RunsenLiu 
  4. @微信公眾號(hào):Python之王 
  5. @CSDN:https://blog.csdn.net/weixin_44510615 
  6. @Github:https://github.com/MaoliRUNsen 
  7. @Date:2020/11/29 
  8. ""
  9. import time 
  10. import cv2 as cv  # pip install opencv-python 
  11. import tkinter as tk 
  12. from tkinter import ttk  # 下拉框依賴庫(kù) 
  13. from tkinter import scrolledtext  # 滾動(dòng)文本框依賴庫(kù) 
  14. from tkinter import N,E,S,W 
  15. # 引入Baidu_API類 (上次文章) 
  16. from baidu_api import Baidu_API 
  17.  
  18. # 拍照 
  19. def take_a_photo(): 
  20.     # 調(diào)用筆記本內(nèi)置攝像頭,所以參數(shù)為0,如果有其他的攝像頭可以調(diào)整參數(shù)為1,2 
  21.     cap = cv.VideoCapture(0) 
  22.     img_path = str(int(time.time())) + '.jpg' 
  23.     while True
  24.         # 從攝像頭讀取圖片 
  25.         sucess, img = cap.read() 
  26.         # 轉(zhuǎn)為灰度圖片 
  27.         # gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# 
  28.         # 顯示攝像頭 
  29.         cv.imshow('----------please enter "s" to take a picture----------', img) 
  30.         # 保持畫面的持續(xù),無(wú)限期等待輸入 
  31.         k = cv.waitKey(1) 
  32.         if k == 27: 
  33.             # 通過(guò)esc鍵退出攝像 
  34.             cv.destroyAllWindows() 
  35.             break 
  36.         elif k == ord("s"): 
  37.             # 通過(guò)s鍵保存圖片,并退出。 
  38.             cv.imwrite(img_path, img) 
  39.             cv.destroyAllWindows() 
  40.             break 
  41.     # 關(guān)閉攝像頭 
  42.     cap.release() 
  43.     # 打印日志 
  44.     scr.insert(tk.END'[{}]拍攝成功...\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'))) 
  45.     # 返回圖像 
  46.     return img_path 
  47.  
  48. ----------圖形界面各個(gè)組件功能的設(shè)計(jì)---------- 
  49. # 清除窗口日志 
  50. def clear_the_window(): 
  51.     scr.delete(1.0, tk.END
  52.  
  53. # 退出軟件 
  54. def exit(): 
  55.     win.quit() 
  56.  
  57. # 下拉框選項(xiàng)選擇 
  58. def select_ttk(event): 
  59.     global numberChosen 
  60.     # 顏值評(píng)分 
  61.     if numberChosen.current() == 1: 
  62.         # 獲取圖像 
  63.         img_path = take_a_photo() 
  64.  
  65.         try: 
  66.             # 向API發(fā)送圖像并獲取信息 
  67.             score, age, gender, race = Baidu_API().face_detect(img_path=img_path) 
  68.  
  69.             # 打印日志 
  70.             scr.insert(tk.END'[{}]年齡「{}」性別「{}」人種「{}」\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'), age, gender, race)) 
  71.             scr.insert(tk.END'[{}]顏值評(píng)分為:{}/100 分\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'), score)) 
  72.         except
  73.             scr.insert(tk.END'[{}]{}'.format(time.strftime(time.strftime('%Y-%m-%d %H:%M:%S')), 
  74.                                                Baidu_API().face_detect(img_path=img_path))) 
  75.     # 手勢(shì)識(shí)別 
  76.     if numberChosen.current() == 2: 
  77.         scr.insert(tk.END'[{}]請(qǐng)將您的手勢(shì)放置攝像頭前...\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'))) 
  78.         time.sleep(0.1) 
  79.         img_path = take_a_photo() 
  80.         try: 
  81.             classname_en, classname_zh = Baidu_API().gesture(img_path=img_path) 
  82.             scr.insert(tk.END
  83.                        '[{}]手勢(shì)大意:{}({})\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'), classname_zh, classname_en)) 
  84.         except
  85.             scr.insert(tk.END
  86.                        '[{}]{}\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'), Baidu_API().gesture(img_path=img_path))) 
  87.     # 智能人臉摳圖 
  88.     if numberChosen.current() == 3: 
  89.         scr.insert(tk.END'智能人臉摳圖\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'))) 
  90.         img_path = take_a_photo() 
  91.         out_path = str(int(time.time())) + '.jpg' 
  92.         try: 
  93.             Baidu_API().body_seg(img_path=img_path, out_path=out_path) 
  94.             scr.insert(tk.END'完成智能人臉摳圖'
  95.         except
  96.             scr.insert(tk.END'[{}]{}\n'.format(time.strftime('%Y-%m-%d %H:%M:%S'), 
  97.                                                  Baidu_API().body_seg(img_path=img_path, out_path=None))) 
  98.  
  99.  
  100. -------------創(chuàng)建窗口-------------- 
  101. win = tk.Tk() 
  102. win.title('客官先關(guān)注微信公眾號(hào):Python之王!'
  103. win.geometry('600x300'
  104.  
  105. ------------窗口組件設(shè)計(jì)----------- 
  106. # grid中的參數(shù):column, columnspan, in, ipadx, ipady, padx, pady, row, rowspan,sticky 
  107.  
  108. # 下拉框組件 
  109. number = tk.StringVar 
  110. numberChosen = ttk.Combobox(win, textvariable=number) 
  111. numberChosen['value'] = ('please select''給我的顏值打個(gè)分吧!''識(shí)別一下我的手勢(shì)''智能人臉摳圖'
  112.  
  113. numberChosen.current(0)  # 設(shè)置默認(rèn)值為第一個(gè),即默認(rèn)下拉框中的內(nèi)容 
  114.  
  115. numberChosen.grid(row=1, column=1, rowspan=1, sticky=N + E + S + W) 
  116. # 下拉框觸發(fā)動(dòng)作 (綁定點(diǎn)擊事件) 
  117. numberChosen.bind('<<ComboboxSelected>>', select_ttk) 
  118.  
  119. # 清除按鈕組件 
  120. tk.Button(win, cnf={'text''clear''command': clear_the_window}).grid(row=1, column=2, ipadx=1, sticky=N + E + S + W) 
  121.  
  122. # 退出按鈕組件 
  123. tk.Button(win, cnf={'text''exit''command': exit}).grid(row=1, column=3, ipadx=1, sticky=N + E + S + W) 
  124.  
  125. # 滾動(dòng)文本框組件 
  126. scr = scrolledtext.ScrolledText(win) 
  127. scr.grid(row=2, column=1, columnspan=3, rowspan=1) 
  128.  
  129. # 使窗口一直顯示 
  130. win.mainloop() 

最后使用Pyinstaller打包即可。

Java 一次編譯到處運(yùn)行,Python沒(méi)有這么好本事,Python有一個(gè)pyinstaller可以打包exe,在window平臺(tái)下運(yùn)行,這也是Python非常不好的方面,而且打包出來(lái)的占用內(nèi)存非常的大

安裝:pip install pyinstaller。Pyinstaller具體參數(shù)如下所示。

注意點(diǎn):有的時(shí)候在代碼最后面加上input(),這樣打開(kāi)exe不會(huì)一散而過(guò)。由于上面代碼本身就是窗口一直顯示,無(wú)需加上input()。

在打包時(shí)候,并沒(méi)有提示錯(cuò)誤,可以順利打包成 exe 文件。但是在運(yùn)行打包好的軟件時(shí),會(huì)提示找不到模塊,本人遇到的是找不到第三方模塊,例如 cv2 。這時(shí)候需要在打包時(shí)指定 -p 參數(shù),后面跟上 python 目錄下的第三方庫(kù)模板目錄路徑 site-packages ,再打包就成功了。

cd 到代碼的目錄執(zhí)行 pyinstaller main.py -F -p F:\anaconda\Lib\site-packages如果Pyinstaller打包報(bào)錯(cuò)numpy.core.multiarray failed to import,這是numpy和opencv的不兼容,可以降低numpy的版本。

 

責(zé)任編輯:姜華 來(lái)源: Python之王
相關(guān)推薦

2020-12-01 09:15:35

GUI

2023-05-09 08:24:13

PythonTkinterGUI編程

2023-11-27 19:42:56

Python GUI編程

2023-11-30 15:02:34

Python庫(kù)

2023-11-23 13:10:24

Python框架

2022-01-07 10:13:07

Tkinter代碼Kivy

2024-04-15 16:14:57

2023-09-08 07:54:01

TkinterPython

2011-05-04 15:17:35

愛(ài)普生微型打印機(jī)

2021-10-20 18:21:18

項(xiàng)目技術(shù)開(kāi)發(fā)

2025-03-24 10:55:53

2020-12-08 22:05:37

Python編程語(yǔ)言開(kāi)發(fā)

2025-02-18 08:30:00

GUIPythontkinter

2015-10-22 15:37:41

DockerDocker生態(tài)云服務(wù)

2023-11-29 07:30:08

Python用戶界面

2014-11-05 12:17:57

移動(dòng)醫(yī)療

2011-06-07 14:44:22

布線弱電

2013-06-19 08:52:48

Unity3D

2011-07-08 14:51:05

2009-01-11 09:06:59

SonicWALLSNWLUTM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

性欧美一区二区| 欧美成人免费高清视频| 性生活免费网站| 亚洲国产日韩在线| 日韩精品久久久久久福利| 国产91对白刺激露脸在线观看| 三级在线观看| 久久99精品国产麻豆不卡| 欧美激情xxxx性bbbb| 少妇久久久久久久久久| 久久久国产精品入口麻豆| 天天综合网天天综合色| 在线丝袜欧美日韩制服| 日韩在线视频观看免费| 麻豆精品一区二区三区| 韩国三级日本三级少妇99| 中文字幕第4页| 亚洲精品一区国产| 欧美性猛片xxxx免费看久爱| 国产精品国三级国产av| 国产中文字幕在线视频| 成人午夜看片网址| 国产精品一区久久久| 一级片免费网址| 91av精品| 亚洲最新在线视频| 日韩综合第一页| 9999精品视频| 91福利国产精品| 国产69精品久久久久999小说| 秋霞影院午夜丰满少妇在线视频| 99久久久久久| a级国产乱理论片在线观看99| 波多野结衣视频网址| av成人毛片| 精品中文字幕在线2019| 麻豆一区在线观看| 国产在线日韩精品| 亚洲精品720p| 久草视频福利在线| 日本亚洲视频| 制服丝袜中文字幕亚洲| 亚洲色图 在线视频| 亚洲风情在线资源| 亚洲成av人在线观看| 成人短视频在线观看免费| 免费在线毛片网站| 国产精品午夜免费| 日韩三级在线播放| 91在线网址| 日本一区二区三区国色天香 | 久久久成人精品视频| 日韩视频在线观看免费视频| 少妇精品久久久| 亚洲欧美一区二区激情| 国产精品无码午夜福利| 免费观看不卡av| 亚洲天堂成人在线| 国产三级在线观看完整版| 伊甸园亚洲一区| 国产亚洲精品高潮| 2017亚洲天堂| 亚洲一区欧美| 欧美精品电影免费在线观看| 免费一级特黄特色大片| 一本色道久久综合亚洲精品高清 | 成人毛片视频在线观看| 国产经典一区二区三区 | 久久亚洲人体| 欧美日韩高清在线| 杨幂一区二区国产精品| 6080成人| 亚洲精品一区二区三区婷婷月| 国精产品一区一区三区免费视频| 亚洲高清极品| 中文字幕国产亚洲| 欧美日韩在线国产| 亚洲三级网站| 国产精品久久不能| 国产精品无码白浆高潮| 成人午夜av电影| 免费成人深夜夜行视频| 香蕉视频在线免费看| 一区二区三区在线视频免费观看| 激情五月六月婷婷| 天堂av在线网| 91精品国产手机| 色哟哟网站在线观看| 亚洲精品aaaaa| www.99久久热国产日韩欧美.com| 免费在线观看av网址| 久久国产精品亚洲77777| 91久久中文字幕| 香港一级纯黄大片| 国产精品久久精品日日| 国产aaa免费视频| 成人看片网页| 精品国产乱码久久久久久影片| 先锋资源av在线| 99精品美女| 456国产精品| 国产精品色综合| 久久午夜羞羞影院免费观看| youjizz.com亚洲| 成人福利视频| 亚洲成av人片在线观看香蕉| 日本少妇xxxxx| 好看不卡的中文字幕| 国产精品久久久久影院日本| 国产成人自拍一区| 中文字幕日韩精品一区| 日韩av片在线看| 亚洲一区二区三区在线免费| 国产亚洲精品日韩| 91av在线免费视频| 岛国av在线一区| 一区二区三区四区视频在线观看| 亚洲天堂av在线| 日韩欧美一区二区视频| 免费黄色在线网址| 六月天综合网| 九色91视频| 超碰97免费在线| 91精品中文字幕一区二区三区 | 国产精品视频在线看| 久久成人免费观看| 51社区在线成人免费视频| 久久精品国产一区二区三区| jizz国产在线| 91美女片黄在线| 青青草国产精品视频| 高清一区二区中文字幕| 最近2019中文字幕第三页视频| 国产又黄又猛又粗又爽| 91一区二区三区在线播放| 99久久免费观看| 亚洲精品一区二区三区中文字幕| 欧美成人精品一区二区| 国产日产亚洲系列最新| 最新久久zyz资源站| 天天综合网日韩| 激情五月综合| 国产精品成人av性教育| 97电影在线观看| 欧美久久婷婷综合色| 欧美性生给视频| 精品在线播放免费| 天天做天天爱天天高潮| 色综合视频一区二区三区44| 在线看日韩欧美| 中文字幕一区二区三区波野结 | 亚洲欧美国产不卡| 日韩一级二级| 中文字幕一区二区三区电影| 中文在线最新版天堂| 欧美激情资源网| 久久久久久蜜桃一区二区| 久久中文字幕av| 成人久久久久久久| 中文在线观看免费| 亚洲精品一区二区三区精华液 | 成人在线观看av| h片精品在线观看| 日韩精品免费在线视频观看| 一级黄色免费网站| 欧美激情一区二区三区全黄| 一区二区三区免费播放| 久久中文视频| 国产精品初高中精品久久| 三级在线观看视频| 在线国产精品播放| a网站在线观看| 亚洲成人自拍一区| 亚洲一区二区三区蜜桃| 久久精品免费观看| 久久亚洲国产成人精品无码区 | 日韩av电影免费观看| 欧美视频第一| 欧美高跟鞋交xxxxxhd| 日产精品久久久久久久性色| 欧美日韩亚洲综合一区二区三区| 亚洲一级生活片| 26uuu久久天堂性欧美| 牛夜精品久久久久久久| 欧美特黄a级高清免费大片a级| 久久综合一区二区三区| 亚洲国产综合在线观看| 久久久中文字幕| 成人好色电影| 欧美精品一区在线观看| 波多野结衣黄色网址| 一区二区三区日韩欧美| 一区二区精品免费| 国产成人在线网站| 国产精品拍拍拍| 亚洲网址在线| 午夜精品一区二区在线观看的| 蜜桃精品一区二区三区| 57pao成人永久免费视频| av在线女优影院| 亚洲精品久久久一区二区三区| 中文无码精品一区二区三区| 亚洲一区二区三区自拍| 五月天婷婷丁香网| 99久久婷婷国产| 男人操女人下面视频| 免费美女久久99| 人妻少妇被粗大爽9797pw| 欧美激情亚洲| 亚洲一区影院| 奇米色欧美一区二区三区| 国产精品一 二 三| 精品视频在线一区| 国产精品久久久久久久app| 国产一二三在线| 欧美成人精品h版在线观看| 五月天婷婷在线视频| 精品一区电影国产| 六月丁香色婷婷| 日韩免费观看高清完整版| 在线观看国产黄| 欧美综合在线视频| 9i看片成人免费看片| 亚洲国产综合91精品麻豆 | 亚洲第一成年网| 九九免费精品视频| 亚洲人成小说网站色在线| 黄大色黄女片18免费| 久久久91精品国产一区二区精品 | 亚洲天堂一区二区在线观看| 日韩av一二三| caoporn超碰97| 天堂一区二区在线免费观看| 欧美一区二区三区爽大粗免费 | 久久综合久久色| 男人的天堂亚洲在线| 欧美色图另类小说| 国产欧美激情| 国产午夜福利100集发布| 激情综合亚洲| 久久国产精品网| 中日韩男男gay无套| av免费观看大全| 国产一区二区三区的电影| 免费成人午夜视频| 国产美女精品| 欧美综合在线观看视频| 欧美专区一区二区三区| 91传媒久久久| 丝袜a∨在线一区二区三区不卡| 欧美日韩在线视频一区二区三区| 国产人成精品一区二区三| www.日本在线播放| 久久精品欧洲| 最新中文字幕免费视频| 久久99久久精品| 少妇高潮一69aⅹ| 丁香一区二区三区| 中文字幕免费在线播放| 91视频国产资源| 免费看黄色av| 专区另类欧美日韩| 欧美日韩免费一区二区| 亚洲国产wwwccc36天堂| 精品欧美一区二区三区免费观看 | 26uuu另类亚洲欧美日本老年| 亚洲精品动漫| 国产精品欧美久久久| 99国内精品久久久久| 高清不卡一区二区三区| 欧美丝袜足交| 亚洲欧美国产一区二区| 国产精品激情电影| 男人添女荫道口图片| 久久久噜噜噜久久狠狠50岁| 一本一道久久a久久综合蜜桃| 国产一区二区三区四区五区美女| 中文字幕乱视频| 国产女主播在线一区二区| 日韩av手机在线免费观看| 亚洲一区自拍偷拍| 中文字幕免费在线观看视频| 欧美日韩精品三区| 亚洲美女综合网| 国产亚洲视频在线观看| 色图在线观看| 日本精品视频在线观看| 国产视频一区二| 久久大片网站| 91精品一区二区三区综合在线爱| 女人被男人躁得好爽免费视频| 久久精品二区三区| 亚欧美一区二区三区| 久久夜色精品国产噜噜av| 日本福利片在线观看| 狠狠爱在线视频一区| 国产精品国产av| 国产午夜精品久久久 | 午夜精品久久久久久久白皮肤| 午夜精品成人av| 国产福利久久精品| 久久一区91| 日本成年人网址| 国产河南妇女毛片精品久久久| 无码一区二区三区在线| 亚洲观看高清完整版在线观看| 中文字幕无线码一区| 国产视频亚洲精品| free性欧美| 亚洲自拍偷拍色图| 欧美日韩性在线观看| 毛片在线视频播放| 国产东北露脸精品视频| 亚洲一级理论片| 色偷偷久久一区二区三区| 国产91免费在线观看| 另类图片亚洲另类| 成人午夜在线| 日本在线视频不卡| 国产日韩亚洲欧美精品| 亚洲v在线观看| 亚洲人亚洲人成电影网站色| 在线观看国产小视频| 日韩精品免费在线| 波多野结衣精品| 99re6热在线精品视频播放速度| 欧美a级成人淫片免费看| 波多野结衣家庭教师视频| 成年人国产精品| 国产亚洲欧美久久久久| 欧美一级黄色大片| 久久日韩视频| 国产在线精品成人一区二区三区| 精品国产精品国产偷麻豆| 欧美日韩激情视频在线观看| 成人毛片视频在线观看| 日本网站在线免费观看| 精品久久久久久久久久久院品网| 超碰在线最新| 亚洲www在线| 欧美成人一品| aaaaa黄色片| 亚洲午夜一二三区视频| 亚洲精品一区二区三区四区| 欧美国产视频一区二区| 一本一道久久a久久| 韩日视频在线观看| av电影天堂一区二区在线 | 国产精品久久久久毛片大屁完整版| 亚洲少妇一区二区| 亚洲成av人在线观看| 青春草在线观看| 国产91精品网站| 成人三级视频| 国产欧美一区二| 亚洲激情六月丁香| 免费国产黄色片| 欧美伊久线香蕉线新在线| 国产免费av一区二区三区| 无码人妻丰满熟妇区五十路百度| 国产日韩欧美麻豆| 6—12呦国产精品| 欧美精品在线免费播放| 蜜桃久久久久| 久久九九国产视频| 成人欧美一区二区三区在线播放| 国产v片在线观看| 韩国欧美亚洲国产| 精品国产一区二区三区| 国产日韩欧美久久| 亚洲精品视频在线看| 欧美天堂在线视频| 国产成人精品日本亚洲专区61| 成人激情视频| 任你躁av一区二区三区| 黑人巨大精品欧美一区二区三区 | 台湾亚洲精品一区二区tv| 国产精品久久久久9999小说| 中文字幕亚洲一区二区av在线 | 中文字幕免费视频观看| 波霸ol色综合久久| 大桥未久女教师av一区二区| 黄在线观看网站| 亚洲欧美在线视频观看| 婷婷在线免费视频| 国产美女91呻吟求| 伊人天天综合| 国产又粗又硬视频| 精品国产精品网麻豆系列| 成人国产一区二区三区精品麻豆| 亚洲乱码日产精品bd在线观看| 久久天堂av综合合色蜜桃网 | 亚洲精品ady| 免费视频成人| 免费欧美一级视频| 悠悠色在线精品| 福利小视频在线观看| 国产伦理久久久| 韩国精品一区二区| 精品人妻一区二区色欲产成人|