利用python实现批量抠图
利用python实现批量抠图
不会Photoshop的你有没有为抠图发愁过呢?即使会了Photoshop,你有没有为需要抠图的图片太多而发愁过呢?因为最近在弄生成词云,作为背景的图片如果轮廓清晰效果就会更好,但是我用Photoshop用的又不是很熟练,所以就写了一个这样的代码来实现简单的批量抠图。
效果
我们先来看看抠图的效果:
工具
实现批量抠图,主要需要用到两个工具,os、paddlepaddle和paddlehub。
- os
os模块在python中属于内置模块,不需要额外安装。使用时我们只需要import os就可以了。这里我们使用到的是os.listdir(),它用于返回一个由文件名和目录名组成的列表。 - paddlepaddle的安装
我们直接用pip install就可以了。
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple - paddlehub的安装
paddlehub的安装也直接用pip install就可以了。
pip install -i https://mirror.baidu.com/pypi/simple paddlehub
代码
工具准备好以后,我们就可以写代码了,代码还是很简短易懂的。
import os
import paddlehub as hub
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')
path = 'D:/p/img/'
files = [path + i for i in os.listdir(path)]
results = humanseg.segmentation(data={'image':files},
visualization=True,
output_dir='D:/p/img1')
D:/p/img/这个文件夹内放的是需要抠图的图片,最后只剩下人物的图片就在img1这个文件夹里了。这个代码还只是用来娱乐而已,和专业的会用Photoshop的抠出来的图肯定还是没有办法比的。