使用Python開發(fā)桌面應(yīng)用的一個體驗

我的主力編程語言現(xiàn)在是Python蜘渣,平時也會使用Python寫一些小腳本做文件處理(更簡單一些的操作會直接用Shell命令)绞呈。基本不會接觸到GUI界面的編寫。但是呢隙姿,對于我而言命令行是可行的方案醋虏,但是如果要把代碼交給沒有編程基礎(chǔ)的人藏澳,并且沒有相關(guān)的開發(fā)環(huán)境時计寇。就需要GUI和打包技術(shù)了。最近就遇到一個情況需要開發(fā)一個類似圖片直方圖均衡的功能給和課題組合作的醫(yī)生使用匙姜,工作的電腦是離線的畅厢,醫(yī)生沒有編程基礎(chǔ)。

要求條件:

  1. 使用Python氮昧,快捷開發(fā)框杜;

  2. GUI;

  3. 獨立的EXE可執(zhí)行文件袖肥。

技術(shù)棧:

  1. Numpy咪辱,用于對像素數(shù)組進(jìn)行映射;

  2. Pillow椎组,圖像庫油狂,底層調(diào)用numpy;

  3. TkinterDND2使用Python內(nèi)置的Tkinter的改進(jìn)版寸癌,支持基礎(chǔ)的code based UI和文件拖拽功能专筷。使用conda安裝。

我的開發(fā)環(huán)境是OS X蒸苇,幸好之前一個老師分配的Windows虛擬機還能用磷蛹。Python環(huán)境3.7.3。

第一版

image.png

支持選取圖片文件夾溪烤,遞歸查找其中的jpg文件并處理味咳。

文件夾選取功能

image.png

圖片處理函數(shù)

image.png

簡單的對圖片像素映射到0-255的范圍庇勃。能夠使得標(biāo)本圖片更容易標(biāo)注。

恢復(fù)函數(shù)

image.png

相當(dāng)于圖片處理函數(shù)的逆操作槽驶,在圖片處理的時候保存了每一張圖片的處理參數(shù)匪凉。

性能分析:

image.png

因為一個標(biāo)本采集的圖片有接近2000張,測試時預(yù)估大約需要8分鐘才能完成一個標(biāo)本的圖片優(yōu)化捺檬。而費

使用cProfile進(jìn)行性能分析,61張圖片要18秒多贸铜。平均一秒3張圖片堡纬。主要的時間消耗是在轉(zhuǎn)換成numpy矩陣、保存圖片和圖片處理函數(shù)蒿秦】靖洌基本是不能夠再優(yōu)化的。那么就要從數(shù)據(jù)量方面考慮棍鳖,是否每一張圖片都需要優(yōu)化并標(biāo)注炮叶?其實不是的,每一個標(biāo)本只需要選取最多10張進(jìn)行標(biāo)注渡处,那么由醫(yī)生選取并且拖放到指定界面會更快捷镜悉。

第二版

image.png

第二版添加了拖放功能并且把文件夾選取的功能去掉了∫教保可以拖放多個文件侣肄,并且會篩選處理其中的jpg文件。

PS: 連標(biāo)題都懶得改醇份。稼锅。

pyinstaller打包

使用pip 安裝pyinstaller打包,pyinstaller是系統(tǒng)依賴的僚纷,在什么系統(tǒng)打包矩距,在什么系統(tǒng)使用〔澜撸坑很多锥债。

總結(jié)

使用pyinstaller遇到幾個bug。six侵状,warm

打包太大了赞弥。有500MB。代碼量180行趣兄。

加了Frame之后文件夾輸入框就不更新了绽左。可能的原因是pack和grid在frame和widge之間混用艇潭∑纯或者混用Tkinter和TkinterDnD2戏蔑。因為文件夾選取的方案被替換掉了。所以這個bug不再存在鲁纠。

conda環(huán)境安裝耗時較久总棵。

還是java香。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末改含,一起剝皮案震驚了整個濱河市情龄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捍壤,老刑警劉巖骤视,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鹃觉,居然都是意外死亡专酗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門盗扇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祷肯,“玉大人,你說我怎么就攤上這事疗隶∮铀瘢” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵斑鼻,是天一觀的道長允青。 經(jīng)常有香客問我,道長卵沉,這世上最難降的妖魔是什么颠锉? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮史汗,結(jié)果婚禮上琼掠,老公的妹妹穿的比我還像新娘。我一直安慰自己停撞,他們只是感情好瓷蛙,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著戈毒,像睡著了一般艰猬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上埋市,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天冠桃,我揣著相機與錄音,去河邊找鬼道宅。 笑死食听,一個胖子當(dāng)著我的面吹牛胸蛛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播樱报,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼葬项,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了迹蛤?” 一聲冷哼從身側(cè)響起民珍,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盗飒,沒想到半個月后穷缤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡箩兽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了章喉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汗贫。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秸脱,靈堂內(nèi)的尸體忽然破棺而出落包,到底是詐尸還是另有隱情,我是刑警寧澤摊唇,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布咐蝇,位于F島的核電站,受9級特大地震影響巷查,放射性物質(zhì)發(fā)生泄漏有序。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一岛请、第九天 我趴在偏房一處隱蔽的房頂上張望旭寿。 院中可真熱鬧,春花似錦崇败、人聲如沸盅称。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缩膝。三九已至,卻和暖如春岸霹,著一層夾襖步出監(jiān)牢的瞬間疾层,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工贡避, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留云芦,地道東北人俯逾。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像舅逸,于是被迫代替她去往敵國和親桌肴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353