巧用諾禾Python美圖技巧

1、前言

Python中有許多用於圖像處理的庫,像是Pillow,或者是OpenCV。而不少時候感受學完了這些圖像處理模塊沒有什麼用,其實只是你不知道怎麼用罷了。今天就給你們帶了一些美圖技巧,讓你的圖美翻全場,朋友圈讚不絕口,女友也誇你,富貴你好厲害啊!python

 

2、模塊安裝

咱們主要使用到OpenCV和Pillow,另外咱們還會使用到wordcloud和paddlehub,咱們先安裝一下:學習

pip install opencv-python
pip install pillow
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install -i https://mirror.baidu.com/pypi/simple paddlehub
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ myqr

另外我使用的Python環境是3.7,知道這些咱們就能夠開始進行咱們的美圖之旅了。字體

 

3、圖片美化

一、祛痘

還在爲痘痘犯難,不敢拍照嗎?有了這個你就不用怕了(雖然有p圖軟件,可是你們不要揭穿我):spa

import cv2
level = 22 # 降噪等級
img = cv2.imread('girl.jpg') # 讀取原圖
img = cv2.bilateralFilter(img, level, level*2, level/2) # 美顏
cv2.imwrite('result.jpg', img)

實際上,在光滑的臉蛋上,痘痘就能夠視爲一個噪點,而咱們能夠經過降噪的方式達到祛痘祛斑的效果,在OpenCV中就提供了相應的濾鏡,咱們只須要調用便可。原圖和實現效果圖對好比下:.net

學會這些Python美圖技巧,就等着女友誇你吧

能夠看到臉上的斑明顯是變少了。紳士們應該能夠注意到,脖子下面的皮膚光滑了許多。不過頭髮細節被抹除了很多。咱們能夠經過調節level參數,調節效果。若是想效果更好,能夠結合人臉識別,進行局部的祛痘處理。code

 

二、詞雲——我不僅是一張圖

其實詞雲已是老生常談了,可是做美圖中的姣姣者,仍是有必要列出來的,由於一張詞雲所能包含的信息太多了:對象

from PIL import Image
import numpy as np
from wordcloud import WordCloud, ImageColorGenerator

# 讀取背景圖片
mask = np.array(Image.open('rose.png'))

# 定義詞雲對象
wc = WordCloud(
# 設置詞雲背景爲白色
background_color='white',
# 設置詞雲最大的字體
max_font_size=30,
# 設置詞雲輪廓
mask=mask,
# 字體路徑,若是須要生成中文詞雲,須要設置該屬性,設置的字體須要支持中文
#font_path='msyh.ttc'
)
# 讀取文本
text = open('article.txt', 'r', encoding='utf-8').read
# 生成詞雲
wc.generate(text)
# 給詞雲上色
wc = wc.recolor(color_func=ImageColorGenerator(mask))
# 保存詞雲
wc.to_file('result.png')

其中article.txt爲咱們的詞雲的文本素材,而rose.png則是詞雲輪廓(該圖片背景應該爲嚴格的白色或者透明),原圖和實現效果以下:blog

學會這些Python美圖技巧,就等着女友誇你吧

仍是很是美的。更多詳細內容能夠參考https://blog.csdn.net/ZackSock/article/details/103517841。圖片

 

三、風格遷移——努力變成你喜歡的樣子

風格遷移,顧名思義就是將某一張圖片的風格遷移到另外一張圖片上。好比我拍了一張白天的圖片,可是我想要一張夜景的圖片,那咱們該怎麼作呢?固然是等到晚上再拍了,不過除了這個方法,咱們還能夠下載一張夜景圖片,將夜景效果遷移到咱們的原圖上。ip

風格遷移的實現須要使用深度學習才能實現,可是像我這樣的菜雞確定是不會深度學習的啦,因此咱們直接使用paddlehub中已經實現好的模型庫:

import cv2
import paddlehub as hub
# 加載模型庫
stylepro_artistic = hub.Module(name="stylepro_artistic")
# 進行風格遷移
im = stylepro_artistic.style_transfer(
images=[{
# 原圖
'content': cv2.imread("origin.jpg"),
# 風格圖
'styles': [cv2.imread("style.jpg")]
}],
# 透明度
alpha = 0.1
)
# 從返回的數據中獲取圖片的ndarray對象
im = im[0]['data']
# 保存結果圖片
cv2.imwrite('result.jpg', im)

原圖風格圖和效果圖以下:

相關文章
相關標籤/搜索