python軟件_Python自制照片美顏軟件~

fc80a9e005793641272dd72362a51a17.png

下午被一個騙子惡心到了,本來聽公開課聽得好好的,搞得心情極差,于是就中斷了網課,聽聽音樂,寫一下文章吧!

前期準備

9273aa7509dc4495486e6edbae594df7.png

①Python編譯環境以及Python代碼編輯器Pycharm的安裝:請在【微信公眾后臺】找到【windows】下的軟件目錄去尋找!

②pip換成國內鏡像源,請自行百度!

③【cmd】窗口或者是Pycharm的【terminal】輸入:

pip?install opencv-python

④更多項目:請star【github倉庫】:

https://github.com/lures2019/lures2020-demos

實際效果演示:

9273aa7509dc4495486e6edbae594df7.png

在網上隨便找的兩張圖片:

705cb4b22514709f016bcf9234117f79.png

【美顏前照片】

看起來,有點……

其實,兩位小姐姐美顏后還是可以的……(廣大朋友們以后找對象就不要看照片了吧~~~~)

5374473dcdc20a3b08a6a995ba030457.png

【美顏后照片】

設置的美顏程度是40,搞成100的話有點虛…………

不管怎么說,美顏后看起來比美顏前好看多了~~~

【實際演示】

實際演示中注意的問題:

既可以是絕對路徑,eg:C:/Users/HP/Desktop/queban.jpg

也可以是放到軟件所在的目錄,直接輸入圖片名稱

①圖片保存最好是【英文形式的】,中文可能有bug

②無法解析在線的圖片地址

③封裝的時候我遇到了bug,我沒法解決!

源代碼:

9273aa7509dc4495486e6edbae594df7.png
from tkinter import *import cv2          # pip install opencv-pythonfrom tkinter import messageboximport osdef fix_photo():    content = entry.get()    con = content.strip()    name = con.split(r'.')[0].split(r'/')[-1]    if con == "":        messagebox.showinfo("提示","請輸入正確的照片的路徑!")    else:       try:           image = cv2.imread(con)           value = 40           # value是美顏程度,值越大程度越大,值越小程度越小           image_dst = cv2.bilateralFilter(image, value, value * 2, value / 2)           # 把美顏后的效果生成一張照片           path = 'photos_after_beauty'           if not os.path.exists(path):               os.mkdir(path)           cv2.imwrite(path + '/' + "%s.jpg" % (name), image_dst)           messagebox.showinfo("提示", "圖片已經美顏成功!")       except EXCEPTION as error:           pass       # 自動清空輸入框內容       entry.delete(0,END)window = Tk()window.title("Python美顏工具1.0")window.geometry("300x100+200+200")window.resizable(0,0)label = Label(window,text="圖片地址:",font=("仿宋",12))label.grid(row=0,column=0)entry = Entry(window,width="28")# entry不能和grid連寫,否則會報錯entry.grid(row=0,column=1)label2 = Label(window,text="").grid(row=1,column=0)label3 = Label(window,text="").grid(row=2,column=0)button1 = Button(window,text="開始美顏",font=("仿宋",12),command=fix_photo)button1.grid(row=3,column=0)button2 = Button(window,text="退出軟件",font=("仿宋",12),command=window.quit)button2.grid(row=3,column=1,sticky="e")window.mainloop()

簡單介紹一下cv2庫:

9273aa7509dc4495486e6edbae594df7.png

大家,看到了代碼就知道了:主要是tkinter和cv2庫

tkinter我就不介紹了,前面幾個項目都已經用過了!

主要是來說一下opencv for Python中的cv2庫吧!

opencv在Python中主要是圖像處理和機器學習方面,功能強大!

這邊我就簡單說一下cv2的加載圖片+圖片模糊+圖片美顏!

1)加載圖片:

import?cv2??????????#?pip?install?opencv-python# 1、加載一張目標圖片image = cv2.imread("qingchundou.jpeg")# 2、創建一個窗口,用來展示圖片cv2.namedWindow("window")# 3、定義一個函數:實時鼠標狀態的點擊def draw(event,x,y,flags,param):    if event == cv2.EVENT_LBUTTONDOWN:        print('鼠標->按下')    elif event == cv2.EVENT_MOUSEMOVE:        print('鼠標->滑動')    elif event == cv2.EVENT_LBUTTONUP:        print('鼠標->抬起')# 4、監聽鼠標事件的回調cv2.setMouseCallback('window',draw)# 5、展示窗口cv2.imshow('window',image)# bug閃退,窗口無線等待,等著用戶來操作cv2.waitKey()# 6、銷毀窗口,優化cv2.destroyAllWindows()

這時候,就會有一個窗口加載圖片:

edec33995d6b6c45a9a6428227d375d6.png

2)圖片模糊處理:

import?cv2??????????#?pip?install?opencv-pythonimage = cv2.imread('qingchundou.jpeg')# 圖片模糊,第一個參數:模糊的對象,第二個參數:模糊程度的大小,值越大,程度越大image_dst = cv2.blur(image,(15,15))cv2.namedWindow("window")cv2.imshow('window',image_dst)cv2.waitKey()cv2.destroyAllWindows()

ba57920615cfe2dc8cf617c7c899d8ca.png

總結

9273aa7509dc4495486e6edbae594df7.png

opencv是一個很強大的庫,支持多個編程語言!大家有興趣的可以試一試!

ca45b43ce9ebbf829131abfb6f8c8589.png

原創不易

點亮在看,拜謝!

7508cbae037da6183ed09066c73c1986.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534061.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534061.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534061.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據集怎么導出_PCA算法 | 數據集特征數量太多怎么辦?用這個算法對它降維打擊...

今天是機器學習專題的第27文章,我們一起來聊聊數據處理領域的降維(dimensionality reduction)算法。我們都知道,圖片格式當中有一種叫做svg,這種格式的圖片無論我們將它放大多少倍,也不會失真更不會出現邊緣模糊的情況。原因也很簡…

html form callback,Promise異步編程模式總結初始化Promise對象統一錯誤處理PromisifyfromCallbackMongoose Promisify...

Promise是JavaScript中的一種異步編程范式, 一個Promise對象表示一個即將完成但還未完成的操作。 鑒于JavaScript中異步和回調的編程風格, Promise模式可以有效地避免『Callback Hell』。Promise 最初有q和bluebird等實現,在ES2015(ES6)提出后…

常用命令_GIT常用命令大全

Git 是一個很強大的分布式版本控制系統。它不但適用于管理大型開源軟件的源代碼,管理私人的文檔和源代碼也有很多優勢。克隆遠程文件:git clone https://gitee.com/abcd/codefile.git projectgit checkout -b dev(本地分支名稱) origin/dev(遠程分支名稱…

nvidia顯示設置不可用_Nvidia顯示設置不可用,您當前未使用連接到NVIDIA GPU的顯示器的解決方法...

相信不少用戶遇到這樣一個問題,就是新購買的臺式機電腦,配置達標的情況下,玩游戲出現卡頓不流暢的現象,準備在NVIDIA控制面板查看是否設置的問題,在打開NVIDIA控制面板的時候,提示了“Nvidia顯示設置不可用…

html的id不能有.嗎,html – 哪些DOM元素不能接受id?

在HTML5中,id屬性是global attribute,可以在任何元素上指定.如果你看看Document Type Declaration for HTML4,你可以找到沒有%attrs的元素;在他們的屬性列表中定義,表示它們不支持id屬性.那些包括在“文檔頭”部分的底部附近:HEAD,TITLE,BASE,META,STYLE…

oracle tns 代理配置_Toad for oracle安裝配置與使用

一.toad安裝與配置注意:toad的使用本機電腦必須安裝完整版oracle客戶端,不能是精簡版的.1.1完整版oracle客戶端的安裝.1.解壓文件,安裝oracle客戶端打開安裝包,找到setup.ext,開始安裝。提示下圖彈窗,可根據此網址內容進行更改(https://blog.…

吳楓 python小課賬號_無門檻速學編程——Python小短課,自上而下分而治之

【Python小短課 11】自上而下,分而治之 做任何事都需計劃,編程也是。 譬如寫文章要列大綱、作畫要想布局,編程也需先謀全局,而后思慮細節。 就以上回說到的“找寶藏”這個程序舉例,最頂層的需求自然就是“找寶藏”&…

計算機本地磁盤D無法擴展,計算機上的本地磁盤D突然無法打開,表明它需要格式化...

接受使用數據恢復軟件將重要數據保存到其他磁盤FindDate特定操作: 運行軟件----“打開”后,將顯示要還原的驅動器. C \ D \ E \ F選擇您要還原的一個,它將開始. 掃描后,再次保存掃描的文件. 哈哈,希望對您有所幫助.最后&#xff0…

caffe運行不停止_caffe(gpu)安裝過程及問題解決

2019.12.05 caffe(gpu)安裝參考網址:教程1:weiliu89/caffe?github.com教程2:https://blog.csdn.net/yggaoeecs/article/details/79163789?blog.csdn.net環境:Ubuntu16.04cuda10.0安裝過程:git clone https://github.…

2021年考計算機考研三戰,2021考研的小伙伴有3條忠告一定要記得,這些都是歷年實戰經驗...

2021考研的小伙伴有3條忠告一定要記得,這些都是歷年實戰經驗,考研一定要記得避開三個大坑。1,分數線低的學校就一定容易考。有一些學校分數線看著很低但實際上難度不低,比如首都師范大學 ,很多專業就是國家線錄取甚至招…

c++ 返回string_JVM系列之:String.intern和stringTable

簡介StringTable是什么?它和String.intern有什么關系呢?在字符串對象的創建過程中,StringTable有起到了什么作用呢?一切的答案都在本文中,快來看看吧。intern簡介intern是String類中的一個native方法,所以它…

conda install 換源_ubuntu更換pip install,apt-get,conda install 成國內源

# 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe mu…

python幫助文檔中查看內置函數_PYTHON官方文檔內置函數整理

一、數學運算類 abs(x) 求絕對值 1 、參數可以是整型,也可以是復數 2 、若參數是復數,則返回復數的模 complex([real[, imag]]) 創建一個復數 divmod(a, b) 分別取商和余數 注意:整型、浮點型都可以 float([x]) 將一個字符串或數轉換為浮點數…

計算機二級指針,C語言——二級指針

二級指針的概念首先任何值都有地址,一級指針的值雖然是地址,但這個地址做為一個值亦需要空間來存放,是空間就具有地址,這就是存放地址這一值的空間所具有的地址,二級指針就是為了獲取這個地址,一級指針所關…

華為 虛擬鍵盤_華為mate30 pro虛擬機械鍵盤特有體驗,雖是虛擬,但卻感受逼真...

華為Mate30 pro已于26日在國內正式發布了。此外,根據了解華為Mate30系列現在已經突破了5億的銷售額。看來,華為的這個下半年旗艦手機非常受歡迎啊。華為Mate30系列現在在國內已經發布了,其整體感官看上去與海外的沒有多大的區別。其實&#x…

python 如何快速判斷列表是否相同_Python-檢查列表中的所有元素是否相同

小編典典 通用方法: def checkEqual1(iterator): iterator iter(iterator) try: first next(iterator) except StopIteration: return True return all(first rest for rest in iterator) 單線: def checkEqual2(iterator): return len(set(iterator)…

計算機有什么著名基金經理排名,百萬年薪的基金經理,都是什么專業出身?!...

有人會說了“小嗶君你四不四撒!基金經理肯定是金融專業出身的咯?不然嘞?”但事實的真相是許多基金經理都并非科班出身這要從基金經理的晉升機制說起了!如下圖基金經理都是從研究員做起的!那么問題來了,如何…

遍歷children_589. N叉樹的前序遍歷

589. N叉樹的前序遍歷給定一個 N 叉樹,返回其節點值的前序遍歷。例如,給定一個 3叉樹 :返回其前序遍歷: [1,3,5,6,2,4]。說明: 遞歸法很簡單,你可以使用迭代法完成此題嗎?題解:既然是樹的遍歷,那么一共就是兩種思路&a…

計算機護理職稱考試報名時間2015,護理職稱考試怎么報名?

護理職稱考試報名流程:網上預報名-現場確認-報名繳費。護理職稱考試網上預報名及網上繳費均在中國衛生人才網,護理職稱考試報名現場確認則按屬地原則在單位或戶籍所在地的衛計局。護理職稱考試報名流程詳解一、網上預報名考生需在規定的時間內登錄中國衛…

怎么用python編程前二n-1項的等差數列的和_python 等差數列末項計算方式

等差數列末項計算 題目內容: 給出一個等差數列的前兩項a1,a2,求第n項是多少 可以使用以下語句實現非負整數n的輸入: nint(input()) 輸入格式: 三行,包含三個整數a1,a2,n 輸出格式: 一…