需求

输入一张人像图片,对人像图片进行分割
输入图片(912x618x3):

代码如下

相关API参考:paddlehub官网

import os
import glob
import cv2
import paddlehub as hubpic_dir = './pic/'
images_name = sorted(glob.glob(pic_dir+'*.png'))[:1]
module_root = './deeplabv3p_xception65_humanseg/'
module = hub.Module(name=None, directory=module_root)# results是一个列表, 元素是字典
results = module.segmentation(data={'image': images_name },batch_size=4,visualization=True,output_dir='./2pic_/')
print('module.segmentation方法有哪些参数:', module.segmentation.__code__.co_varnames)
print('预测结果results类型:', type(results))             # list
print('列表的每个元素results[0]类型:', type(results[0]))  # dict
print('results[0]有哪些字段:',  list(results[0].keys()))       # 'save_path'和'data'字段
print("results[0]['save_path']:", results[0]['save_path'])   # save_path'对应的值为module.segmentation的参数output_dir值
print(type(results[0]['data']))   # ndarray
print(results[0]['data'].shape)   # (618, 912, 4)  是一个png图片
cv2.imwrite('./1.png', results[0]['data'])
# output_dir和cv2.imwrite都是一样的图片

运行结果如下


分割后的图片:

分割出来的图片解析

解析代码

img1 = Image.open('./00000001.png')
print("img1 模式:", img1.mode)
print("img1 尺寸:", img1.size)
print("img1 通道数:", len(img1.split()))
r,g,b,a = img1.split()
image_rgb = Image.merge("RGB", (r,g,b))
image_rgb.save('image_rgb-1.png')
a.save('image_a-1.png')
print('img1 通道a有哪些值:', set(np.array(a).flatten().tolist()))

运行结果

终端截图

image_rgb-1.png

image_a-1.png

可以参考资料

https://blog.csdn.net/hawkman/article/details/103901398
https://aistudio.baidu.com/aistudio/projectdetail/445281?channelType=0&channel=0
https://blog.csdn.net/hhhhhh13579/article/details/105924669
https://aistudio.baidu.com/aistudio/projectdetail/444078

Paddlehub人像抠图解读相关推荐

  1. paddlehub人像抠图+PIL图像处理

    完整代码见:https://aistudio.baidu.com/aistudio/projectdetail/444078 文章目录 一.环境配置 二.定义函数 1.人像抠图 2.图像旋转 3.上下 ...

  2. paddlehub自动抠图-人像

    paddlehub自动抠图-人像 import os import matplotlib.pyplot as plt import matplotlib.image as mpimg, cv2 imp ...

  3. python抠出图片人像_Python+Paddlehub相片人像抠图精简源码实例

    Python+Paddlehub相片人像抠图实例 无需PS软件,手动制作自己的抠图工具,在只有一张图片,需要细致地抠出人物的情况下,能帮你减少抠图步骤;在有多张图片需要抠的情况下,能直接帮你输出这些人 ...

  4. (记录)PaddleHub创意赛:AI人像抠图及图像合成

    文章目录 PaddleHub创意赛:AI人像抠图及图像合成 一.安装环境(这里面有几个坑) 二.接下来就``开始P图 1. 引入包 2. 加载预训练模型(挺厉害的不得不说) 3. 图像合成 Paddl ...

  5. Python实现自动人像抠图(小白也能学会)

    原理:AI人工智能,机器学习 工具:paddlehub包和人像抠图模型deeplabv3p_xception65_humanseg 步骤一:安装软件 1.nodepad++ (自行百度安装) 2.py ...

  6. 百度PaddlePaddle飞浆实现多图像人像抠图

    文章目录 前言 一.程序整体流程 二.使用步骤 1.引入库 2.读入数据 3.显示图像 4.调用飞浆训练模型 5.显示抠图后的图像 5.完整代码 总结 前言 安装了很久的百度飞浆终于安装好了,这心情是 ...

  7. android拍照自动裁剪_新功能上线!智能人像抠图、图片自由裁剪,PPT 还能这么玩?...

    众所周知,不少人买平板都是买前「生产力」,买后某奇艺.其实,要打破这个魔咒,一个 WPS 可能就够了. 安卓平板 WPS 不仅能拥有电脑版般的体验,还针对触屏推出了众多实用且前沿的新功能,帮助你快速提 ...

  8. 超强实时人像抠图算法开源,随心所欲背景替换!

    谈到人像抠图想必大家都不陌生.在影视剪辑.直播娱乐.线上教学.视频会议等场景中都有人像分割的身影,它可以帮助用户实时.精准地将人物和背景精准识别出来,实现更精细化的人物美颜.背景虚化替换.弹幕穿人等, ...

  9. 【视频课】图像分割重磅上新-人像抠图(Matting)实战

    课程介绍 图像分割在直播,电商,自动驾驶等行业中有着广泛的应用,有三AI此前推出了<深度学习之图像分割-理论实践篇>课程,让你以最短的时间掌握深度学习图像分割的基础知识并进行代码实践. 我 ...

最新文章

  1. SAP SD交货单凭证流里的Confirmation of Service初探 II
  2. 怎样将包含元组的列表转换为字典?
  3. Java中使用Jedis连接Redis对Hash进行操作的常用命令
  4. 如何优雅的实现界面跳转 之 统跳协议 - DarwinNativeRouter
  5. (原创)c#学习笔记05--变量的更多内容01--类型转换01--隐式转换
  6. 变动翻屏展示图片效果
  7. 特征码弊端渐显 杀毒技术面临革命
  8. 华为云微服务应用平台服务能力业界领先,通过微服务标准首批评估
  9. 第 3 章 UML 类图
  10. [转]AAuto编程语言官方站 网站服务条款
  11. Apache监控与调优(七)MPM相关参数
  12. 为了让你在“口袋奇兵”聊遍全球,java面试代码题
  13. 64位系统可以装python32位吗_Python - pyinstaller在64位系统下打包32位程序
  14. 信息检索(IR)笔记1: 倒排索引(Inverted Index)
  15. OpenCL设备存储形式
  16. 小程序公共方法封装(app.js 源码分享)
  17. 从零开始—仿牛客网讨论社区项目(六)
  18. 猫和路由器和交换机有什么区别
  19. 2019CCPC秦皇岛赛区(重现赛)- I
  20. win10 store 打不开

热门文章

  1. linux无网下安装anaconda,使用anaconda安装pytorch
  2. Spring boot 连接MySQL,使用数据源hikaricp
  3. 俄罗斯服务器购买稳定,俄罗斯RUVDS云服务器购买教程,约3元/月
  4. 【OpenCV】—图像金子塔与图片尺寸缩放
  5. 荣耀手机多久能升级鸿蒙,荣耀30手机4.0后什么时候开始才可以升级鸿蒙?
  6. 计算机电缆试验电压标准,电子计算机用电缆技术参数
  7. 计算机专业从事物控工作的实习周记,物控转正申请.doc
  8. 战地5启动后直接弹回橘子
  9. Thinking in Shader(1)
  10. 说说字节流和字符流的区别