第455篇原創(chuàng),和30w+一起學(xué)Python! 點(diǎn)擊加載圖片 對(duì)于PS,大家都不會(huì)陌生,小編身邊的很多人都用PS進(jìn)行過(guò)圖像的編輯,PS的功能十分強(qiáng)大,但是軟件本身十分龐大,對(duì)于電腦的性能要求較高。 今天,小編就用python來(lái)實(shí)現(xiàn)PS當(dāng)中的33種圖像處理的算法,讓大家能夠不用PS,依舊可以快速的實(shí)現(xiàn)圖像的處理。 01.環(huán)境配置 本次程序用到的python庫(kù)非常的多,為了讓大家能夠使用本次的程序,我們需要明確環(huán)境的配置要求。 Pillow 7.2.0 scikit-image 0.17.2 opencv-python 3.4.10.35 numpy 1.19.0 大家需要確保自己的python環(huán)境中有上述的第三方庫(kù),才能執(zhí)行下面我們所涉及到的程序內(nèi)容。 02.軟件整體講解 在PS的圖像處理算法中,有針對(duì)于兩張圖片實(shí)現(xiàn)的圖層混合的算法,也有針對(duì)于單張圖片處理的算法,小編對(duì)這兩種情形都有涉及,讓大家可以根據(jù)情況靈活處理。由于是面向用戶的軟件,所以我們先來(lái)看看整體的頁(yè)面布局,如下圖所示: 點(diǎn)擊加載圖片 上圖中,可以看到,軟件界面中上方存在兩種類型的算法選擇,分別是單圖算法和雙圖算法,位于界面左側(cè)的是四個(gè)不同的按鈕,分別是兩個(gè)打開(kāi)本地圖片的按鈕和執(zhí)行單圖算法和雙圖算法的按鈕。 中間的三個(gè)顯示區(qū)域,則是用來(lái)顯示不同圖片的展示區(qū)。界面右上角的按鈕是用來(lái)退出程序的按鈕。 03.算法程序講解 針對(duì)于單圖和雙圖,小編一共涉及到33種算法,單圖算法中,包含了常見(jiàn)的素描、浮雕、球形圖、旋轉(zhuǎn)模糊、舊照片等二十余種算法,而針對(duì)于雙圖算法中,則是包含了圖片的疊加、實(shí)色混合等十余種算法。僅僅這些算法的代碼,就有八百多行,這里我們簡(jiǎn)單的針對(duì)幾種算法的程序進(jìn)行講解演示。 1).單圖算法 把照片弄成舊照片: 點(diǎn)擊加載圖片 對(duì)于單圖算法,我們來(lái)說(shuō)明一下舊照片的函數(shù),首先是將輸入圖片的RGB三通道進(jìn)行分離,然后將輸出圖片的三個(gè)通道按照不同的比例進(jìn)行融合。最后將輸出圖片中大于1的像素值設(shè)置為1,否則就保留原先的數(shù)值。其算法效果如下圖所示。 2).雙圖算法 修改照片不透明度: 點(diǎn)擊加載圖片 對(duì)于雙圖算法,更多的是對(duì)于圖層的基礎(chǔ)操作,因此在程序上會(huì)簡(jiǎn)單一些,例如上圖中不透明度函數(shù)。函數(shù)僅僅有一行代碼,就是將兩張圖片按照不同的透明度比例進(jìn)行疊加,即可完成。其效果如下圖所示。 點(diǎn)擊加載圖片 03.界面程序講解 在對(duì)圖像算法有了介紹后,接下來(lái)我們來(lái)看一下界面的程序中,對(duì)于各個(gè)控件是如何構(gòu)建的吧。本次界面的搭建用到的是python的內(nèi)置庫(kù)tkinter。其頁(yè)面布局的程序大家可以下載源碼來(lái)自行分析,我們主要來(lái)看一下頁(yè)面中各個(gè)按鈕所控制的函數(shù)功能。 對(duì)于打開(kāi)圖片1和打開(kāi)圖片2兩個(gè)按鈕,其控制的函數(shù)作用就是打開(kāi)圖片并顯示在界面中,函數(shù)如下圖所示: 點(diǎn)擊加載圖片 上述的函數(shù)通過(guò)讀取本地圖片文件,然后調(diào)整圖片的大小,并顯示在Label控件中。 對(duì)于單圖執(zhí)行和雙圖執(zhí)行的按鈕控件,它們的作用是將圖片按照特定的算法進(jìn)行處理,并將處理后的結(jié)果顯示在最右側(cè)的結(jié)果展示中,以單圖執(zhí)行的函數(shù)為例。 點(diǎn)擊加載圖片 函數(shù)首先讀取圖片,并將函數(shù)大小調(diào)整為偶數(shù),因?yàn)槟承┧惴ǖ膱?zhí)行要求輸入圖片大小為偶數(shù)。然后按照選擇的單圖算法來(lái)處理圖片并保存到本地,最后,讀取處理好的圖片顯示到界面中。 04.效果展示: 以上就是對(duì)于界面中主要按鈕控件所控制函數(shù)的講解,接下來(lái)我們來(lái)看一下程序最終的執(zhí)行效果吧。 以上就是小編今天為大家?guī)?lái)的分享,Python真的是太強(qiáng)大了!可以玩爬蟲(chóng),自動(dòng)化辦公,數(shù)據(jù)分析,圖像處理,機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘,金融分析,自動(dòng)化測(cè)試,后端開(kāi)發(fā),運(yùn)維等等方方面面都可以用。小伙伴,趕緊學(xué)起來(lái)吧! 推薦閱讀: 入門: 最全的零基礎(chǔ)學(xué)Python的問(wèn)題 | 零基礎(chǔ)學(xué)了8個(gè)月的Python | 實(shí)戰(zhàn)項(xiàng)目 |學(xué)Python就是這條捷徑 干貨:爬取豆瓣短評(píng),電影《后來(lái)的我們》 | 38年NBA最佳球員分析 | 從萬(wàn)眾期待到口碑撲街!唐探3令人失望 | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個(gè)海量小姐姐素描圖 | 年度爆款文案 2).學(xué)Python真香!我用100行代碼做了個(gè)網(wǎng)站,幫人PS旅行圖片,賺個(gè)雞腿吃 3).首播過(guò)億,火爆全網(wǎng),我分析了《乘風(fēng)破浪的姐姐》,發(fā)現(xiàn)了這些秘密 4).80行代碼!用Python做一個(gè)哆來(lái)A夢(mèng)分身 5).你必須掌握的20個(gè)python代碼,短小精悍,用處無(wú)窮 6).30個(gè)Python奇淫技巧集 |
|