巧用诺禾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)

原图风格图和效果图以下:

相关文章
相关标签/搜索