Python Opencv實現(xiàn)最強美顏濾鏡效果
前言
繼老干媽、辣條之后,中國美顏軟件在海外一夜成名,把所有人都幻化成了粉紅小甜心。
人類學(xué)者克里斯特爾·阿比丁博士認(rèn)為,這是一種亞洲風(fēng)情的文化擴散。
哈嘍!哈嘍,我是木子!
“亞洲四大邪術(shù)”之一的中國美顏術(shù)絕非浪得虛名——
根據(jù)小編的第八定律,99% 的人拍了照在發(fā)朋友圈之前,都會給自己P一P。
并且都信奉著一個真理:美顏過后的自己,才是真正的自己。?
最初,大家修改的范圍也僅僅是磨個皮,讓自己白兩度。
但這終究無法滿足,他們?nèi)諠u增長的對美的渴望。?
于是,瘦臉+大眼又成了必備步驟。于是越來越多的項目都成為了大家的必備........
還有少數(shù)天選之人,將各類技術(shù)融會貫通,修容之技出神入化。我們通常稱他們?yōu)?mdash;—百萬P圖大神。這些人的作品膜拜就好,至于怎么 P 的,咱也不知道,咱也不敢問。
今天小編就來寫一版Python代碼美顏給大家!
環(huán)境安裝
本文是由Opencv寫的小程序。
涉及運行環(huán)境:Python3.7、Pycharm社區(qū)版、opencv模塊。
pip install +模塊名 或pip install -i https://pypi.douban.com/simple/ opencv-python
效果展示
第一組隨機
原圖——
效果圖——
看起來,有點……
其實,兩位小姐姐美顏后還是可以的……
(廣大朋友們以后找對象就不要看照片了吧網(wǎng)戀也需要謹(jǐn)慎啊)
設(shè)置的美顏程度是40,搞成100的話有點虛…………
不管怎么說,美顏后看起來比美顏前好看多了~~~
第二組隨機
這小姐姐顏值還是挺高的哈,美顏前后也就差不多~
源碼展示
from tkinter import * import cv2 # pip install opencv-python from tkinter import messagebox import os def 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("提示", "圖片已經(jīng)美顏成功!") except EXCEPTION as error: pass # 自動清空輸入框內(nèi)容 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()
額外的小知識補充:
美顏的小知識上面已經(jīng)說過就不說啦!這里小編簡單說一下cv2的加載圖片+圖片模糊!
加載圖片:
import cv2 # pip install opencv-python # 1、加載一張目標(biāo)圖片 image = cv2.imread("qingchundou.jpeg") # 2、創(chuàng)建一個窗口,用來展示圖片 cv2.namedWindow("window") # 3、定義一個函數(shù):實時鼠標(biāo)狀態(tài)的點擊 def draw(event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDOWN: print('鼠標(biāo)->按下') elif event == cv2.EVENT_MOUSEMOVE: print('鼠標(biāo)->滑動') elif event == cv2.EVENT_LBUTTONUP: print('鼠標(biāo)->抬起') # 4、監(jiān)聽鼠標(biāo)事件的回調(diào) cv2.setMouseCallback('window',draw) # 5、展示窗口 cv2.imshow('window',image) # bug閃退,窗口無線等待,等著用戶來操作 cv2.waitKey() # 6、銷毀窗口,優(yōu)化 cv2.destroyAllWindows()
這時候,就會有一個窗口加載圖片。
圖片模糊處理:
import cv2 # pip install opencv-python image = cv2.imread('qingchundou.jpeg') # 圖片模糊,第一個參數(shù):模糊的對象,第二個參數(shù):模糊程度的大小,值越大,程度越大 image_dst = cv2.blur(image,(15,15)) cv2.namedWindow("window") cv2.imshow('window',image_dst) cv2.waitKey() cv2.destroyAllWindows()
總結(jié)
opencv是一個很強大的庫,支持多個編程語言!大家有興趣的可以試一試!
以上就是Python Opencv實現(xiàn)最強美顏濾鏡效果的詳細(xì)內(nèi)容,更多關(guān)于Python Opencv濾鏡的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼
今天小編就為大家分享一篇python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12pandas數(shù)據(jù)處理之繪圖的實現(xiàn)
這篇文章主要介紹了pandas數(shù)據(jù)處理之繪圖的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06使用Python圖像處理庫Pillow處理圖像文件的案例分析
本文將通過使用Python圖像處理庫Pillow,幫助大家進一步了解Python的基本概念:模塊、對象、方法和函數(shù)的使用,文中代碼講解的非常詳細(xì),需要的朋友可以參考下2023-07-07Python實現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫的方法示例
這篇文章主要介紹了Python實現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫的方法,涉及Python文件讀取及數(shù)據(jù)庫寫入相關(guān)操作技巧,需要的朋友可以參考下2018-04-04pandas.concat實現(xiàn)DataFrame豎著拼接、橫著拼接方式
這篇文章主要介紹了pandas.concat實現(xiàn)DataFrame豎著拼接、橫著拼接方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10