导语:

对于抠图来说,专业人用 PhotoShop 的“魔棒”工具,非专业用醒图 APP 来实现,但是小编觉得他们处理能力有限,一次只能处理一张图片,对于一些比较复杂的图,有时候还是需要花点时间的,今天就给大家带了一个非常快速简单的办法,用Python来批量抠取人像,一键批量抠图!

刚开始,我也不看好python自动抠图,总觉得不够精确,抠不出满意的图。但是后面发现真香!下面我就直接展示一下效果图吧。我们先看看原图 :

这张图片背景是纯色,我们平时用PhotoShop抠起来也比较简单,对我们计算机来说也不是什么难题,下面是python抠的效果图:

因为本身是PNG图片,而且原图是白色背景,所以看不出什么区别。为了显示效果,我把原图和抠好的图放到一张黄色背景图片上:

这样一看效果明显多了,感觉抠图效果还是非常好的。但是,抠这种简单的图片,不怎么过瘾,我们再来看看复杂一点的图片:

这张图片背景色比之前复杂一些,而且有渐变,我们来看看抠图后的效果如何:

这个原图背景不是白色,我就不弄黄色背景了,感觉这个效果也还算满意。那么,对于多人物的图片,效果如何呢?我们再看看下面这张图片:

这里有三个人,我们看看程序能不能自动抠出来:

虽然是有点瑕疵,不过还是很不错了。

下面我们看看最后一个例子:

这个比前面的图都复杂的多,那么效果如何呢,我们来看看:

哈哈,不仅识别出了人,还把火炬识别出来并抠了出来。总的来说,在完成人物抠图方面是没有什么问题的。

看完效果,你肯定想问这是如何实现的呢?

下面我们就可以正式开始写代码了。

正文:

实现抠图的代码很简单,大概分为下面几个步骤:

  1. 导入模块

  2. 加载模型

  3. 获取文件列表

  4. 抠图

实现起来没有什么难度,为了方便读代码,我将代码写清楚一点:

1、导入模块

import os import paddlehub as hub

2、加载模型

humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')

3、获取文件列表

# 图片文件的目录
path = 'D:/CodeField/Workplace/PythonWorkplace/PillowTest/11_yellow/img/'
# 获取目录下的文件
files = os.listdir(path)
# 用来装图片的
imgs = []
# 拼接图片路径
for i in files:imgs.append(path + i)
#抠图
results = humanseg.segmentation(data={'image':imgs})

我们在控制台运行一下这个程序:

4、抠图

D:\CodeField\Workplace\PythonWorkplace\PillowTest\11_yellow>python 抠图.py
[2022-03-10 21:42:34,587] [    INFO] - Installing deeplabv3p_xception65_humanseg module
[2022-03-10 21:42:34,605] [    INFO] - Module deeplabv3p_xception65_humanseg already installed in C:\Users\zaxwz\.paddlehub\modules\deeplabv3p_xception65_humanseg
[2022-03-10 21:42:35,472] [    INFO] - 0 pretrained paramaters loaded by PaddleHub

运行完成后,我们可以在项目下看到humanseg_output目录,抠好的图片就会存放在该目录下。当然了,上面的代码我们在获取文件列表的操作还可以简化一下:

import os, paddlehub as hub
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')        # 加载模型
path = 'D:/CodeField/Workplace/PythonWorkplace/PillowTest/11_yellow/img/'    # 文件目录
files = [path + i for i in os.listdir(path)]    # 获取文件列表
results = humanseg.segmentation(data={'image':files})    # 抠图

结尾:

至此,我们就完成了5行代码批量抠图,大家喜欢的记得三连哦!需要完整的项目源码的私信我即可哟!点击这个也行哦!

别再自己抠图了,Python教你一招弄完相关推荐

  1. python监控桌面捕捉_想要远程获取对方的桌面?Python教你一招搞定!

    申明 本文章仅供学习使用 先说一下功能的实现方式: 让对方的电脑自动截图,并且通过邮件的方式发给指定邮箱 再说一下需要的包:需要下载pyautogui以及email包,下载方式为在cmd命令行下输入p ...

  2. Ps怎么快速抠图白色背景?教你两招轻松搞定!

    遇到白色背景进行抠图时,如何快速抠出想要的图呢,接下来就给大家分享两种操作方法. 第一种:使用魔术橡皮檫工具 ①首先启动打开Photoshop软件,将素材拖拽到ps中打开,也可使用快捷键方式ctrl+ ...

  3. 【Python教你一招】用Python实现童年小游戏俄罗斯方块

    学习素材与源码在Python学习交流群:733089476 获取 在那个电子产品比较匮乏的年代,小游戏机还是为数不多的游戏类电子产品,对小孩子更是有着不可抗拒的魔力,在当时如果哪个小孩买了一个小游戏机 ...

  4. 粉丝问我七夕送点啥,我用Python教你一招!

    "菜鸟学Python",第"512"篇原创 大家好,我是菜鸟哥,这是我第512篇原创! 迢迢牵牛星,皎皎河汉女.转眼间,承载着美好爱情寓意的七夕节来到了.在这一 ...

  5. 【Python教你一招】画一棵带音乐的雪夜圣诞树 | 附源代码

    源码在Python学习交流群:733089476 获取 本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 1.用 Python 画一棵圣诞树作为背景图 2.在圣诞树背景图中添加 ...

  6. 计算机设计图片教程,电脑如何抠图?教你一招快速搞定

    电脑抠图是使用软件进行图片处理,去除照片背景得到一张透明背景的图片,便于进行设计创作,抠图对于ps大神是非常简单的事情,可对于一窍不通的新手小白来说用电脑抠图是很困难的事情,但小编今天给大家分享一个抠 ...

  7. 别再自己抠图了,3行Python代码实现图像照片抠图和换底色的方法

    前言 对于会PhotoShop的人来说,抠图是非常简单的操作了,有时候几秒钟就能扣好一张图.不过一些比较复杂的图,有时候还是要画点时间的,今天就给大家带了一个非常快速简单的办法,用Python来批量抠 ...

  8. 开课吧python课程-Python教父廖雪峰加入开课吧 打造技术品类黄金内容班底

    近日,刚刚宣布获得D轮融资的慧科集团再添喜讯--开源教程开发者Python教父廖雪峰作为内容合伙人和战略顾问加入慧科集团旗下互联网人学习成长社群开课吧,全面统筹和规划开课吧Python.Java.区块 ...

  9. python往redis导数_Python:教你一招,将500W+的数据快速写入redis(文内赋赠教程)...

    Python:教你一招,将500W+的数据快速写入redis(文内赋赠教程) 作者:PHPYuan 时间:2019-03-14 03:40:44 最近遇到一个问题:用python写500W+的数据到r ...

最新文章

  1. 4 行 Python 代码获取所在城市天气预报
  2. UVa 679 - Dropping Balls
  3. 北电ERS1600,8300,8600交换机的基本技术-第六章 二层冗余技术(MLT,SMLT,IST)
  4. Win32汇编环境搭建教程(MASM32 SDK)
  5. ios警告与提示对话框
  6. 斐波那契数列(信息学奥赛一本通-T1159)
  7. 就谈个py 的装饰器 decorator
  8. lwj_C#_周总结1
  9. 史上最全微信域名防封API原理及实现方案
  10. TTML(IMSC)字幕
  11. 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径
  12. java 打砖块算法_打砖块java代码详细
  13. 基因组选择的几个概念
  14. python与spider的区别_python – Scraw spider与Scraped items之间的区别
  15. 35+老测试员生涯回顾,揭秘无力吐槽的自动化真相…
  16. Linux-dd命令
  17. 零阶保持器和延时模块的区别
  18. Linux中写C代码进行文件读写与权限修改等各类操作
  19. 盖档案骑缝章的样本_盖印鉴骑缝章的技巧
  20. 一号护工平台开发系统源码项目

热门文章

  1. 零基础学平面设计要从哪入手
  2. 阿里云 大数据DataWorks开发套件的相关操作
  3. 酷比魔方iwork8刷机shell_酷比魔方iwork8旗舰版刷机教程及固件上线
  4. DNF——一开游戏,TP刚读完条就蓝屏(终止代码:KMODE_EXCEPTION_NOT_HANDLED)的解决方法
  5. 【Fuzzy】模糊专家系统(1)
  6. 智能家居雷达模块应用,毫米波雷达传感器,雷达感应技术应用
  7. 微信小程序getUserProfile详解
  8. android socket 长连接_java-socket长连接demo体验
  9. vim 写入错误,转换失败 (请将 'fenc' 置空以强制执行)
  10. 2021最新 阿里云部署 Flask + WSGI + Nginx 详解