Python快速实现一键抠图功能的全过程
简介
使用百度深度学习框架paddlepaddle对人像图片进行自动化抠图
安装
根据PaddlePaddle官网命令安装
如
pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple pip install paddlehub -i https://mirror.baidu.com/pypi/simple
初试
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
import paddlehub as hub from pathlib import Path paths = [str(i) for i in Path('.').glob('*.jpg')] # 当前路径下所有.jpg文件 human_seg = hub.Module(name='deeplabv3p_xception65_humanseg') results = human_seg.segmentation(paths=paths, visualization=True, output_dir='output') # results = human_seg.segmentation(paths=paths, use_gpu=True, visualization=True, output_dir='output') # 使用GPU print(results)
代码会自动下载图像分割模型deeplabv3p_xception65_humanseg到C:\Users\Administrator\.paddlehub\modules
效果
文件名 | 原图 | 效果 |
---|---|---|
1.jpg | ||
2.jpg | ||
3.jpg | ||
4.jpg | ||
5.jpg |
详解
人像分割API
def segmentation(images=None, paths=None, batch_size=1, use_gpu=False, visualization=False, output_dir='humanseg_output')
参数
- images(list[numpy.ndarray]):图片数据,BGR格式
- paths(list[str]):图片路径
- batch_size(int):批量处理数量
- use_gpu(bool):是否使用 GPU
- visualization(bool):是否将识别结果保存为图片
- output_dir(str):图片保存路径
遇到的坑
1. 报错RuntimeError: Environment Variable CUDA_VISIBLE_DEVICES is not set correctly. If you wanna use gpu, please set CUDA_VISIBLE_DEVICES as cuda_device_id.
import os os.environ['CUDA_VISIBLE_DEVICES'] = '0'
或
set CUDA_VISIBLE_DEVICES=0
参考文献
一款Python实用神器,5 行 Python 代码 实现一键批量扣图
总结
到此这篇关于Python快速实现一键抠图功能的文章就介绍到这了,更多相关Python一键抠图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
python实现人工智能Ai抠图功能
自己是个PS小白,没办法只能通过技术来证明自己. 话不多说,直接上代码 from removebg import RemoveBg import requests import os if __name__ == '__main__': path = '%s\picture'%os.getcwd() ispath = os.path.exists(path) if not ispath: os.mkdir(path) response = requests.post( 'https://api.
-
python实现抠图给证件照换背景源码
本文实例为大家分享了python实现抠图给证件照换背景的具体代码,供大家参考,具体内容如下 import cv2 import numpy as np import matplotlib.pyplot as plt #建立显示图片的函数 def show(image): plt.imshow(image) plt.axis('off') plt.show() #导入前景图 img=cv2.imread('font.jpg') #图片导入 img = cv2.cvtColor(img,cv2.CO
-
3行Python代码实现图像照片抠图和换底色的方法
1.项目背景 对于不会PS的小伙伴,抠图是一个难度系数想当高的活儿,某宝照片抠图和证件照换底色均价都是5元RMB,所以今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 这里介绍Remove Image Background工具,它基于 Python.Ruby 和深度学习技术开发,通过强大的 AI 人工智能算法实现自动识别出前景主体与背景图,分分钟秒秒钟完成抠图. 这款抠图工具有两种简单方式:在线抠图和Python代码抠图,介绍如下.
-
python和opencv实现抠图
本文实例为大家分享了python实现抠图的具体代码,供大家参考,具体内容如下 其中使用了opencv中的grabcut方法 直接上代码 # encoding:utf-8 # 图像提取 # create by import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('1.jpg') mask = np.zeros(img.shape[:2], np.uint8) bgdModel = n
-
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
因为最近在做深度学习抠图,正好要用到蒙版进行抠图,所以我将抠图代码进行了封装注释,可以直接使用.可能走了弯路,若有高见请一定提出! 主要代码 import cv2 from PIL import Image import numpy as np class UnsupportedFormat(Exception): def __init__(self, input_type): self.t = input_type def __str__(self): return "不支持'{}'模式的转换
-
使用python和opencv的mask实现抠图叠加
背景照片: logo: 合成效果: 代码: import cv2 as cv, numpy as np # Load two images img1 = cv.imread('227351.jpg') # 背景 img2 = cv.imread('logo.png') # logo # I want to put logo on top-left corner, So I create a ROI rows,cols,channels = img2.shape roi = img1[0:rows
-
Python用5行代码实现批量抠图的示例代码
前言 对于会PhotoShop的人来说,抠图是非常简单的操作了,有时候几秒钟就能扣好一张图.不过一些比较复杂的图,有时候还是要画点时间的,今天就给大家带了一个非常快速简单的办法,用Python来批量抠取人像. 效果展示 开始吧,我也不看好什么自动抠图,总觉得不够精确,抠不出满意的图.下面我就直接展示一下效果图吧.我们先看看原图 这张图片背景未纯色,我们平时用PhotoShop抠起来也比较简单,对我们计算机来说也不是什么难题,下面是效果图: 因为本身是PNG图片,而且原图是白色背景,所以看不出什么
-
Python实现AI自动抠图实例解析
一.简介 抠图是用PS? 用魔棒和快速选择工具? 遇到复杂背景怎么办? 最近发现一个神奇的工具--Remove Image Background https://www.remove.bg/zh 它是基于Python.Ruby和深度学习技术开发,通过强大的AI人工智能算法实现自动识别出前景主体与背景图,秒秒种完成抠图. 这款抠图工具有两种简单方式: 1.在线抠图 2.API代码抠图 二.在线抠图 1.打开remove.bg网站首页,可以上传本地图片,也可以选择网络图片的URL链接. 2.上传几秒
-
Python快速实现一键抠图功能的全过程
简介 使用百度深度学习框架paddlepaddle对人像图片进行自动化抠图 安装 根据PaddlePaddle官网命令安装 如 pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple pip install paddlehub -i https://mirror.baidu.com/pypi/simple 初试 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg import paddlehub as hu
-
Python+Selenium实现一键摸鱼&采集数据
目录 前言 应用场景 代码 一键摸鱼(打开多个网页 编写bat 一键数据采集 前言 将Selenium程序编写为 .bat 可执行文件,从此一键启动封装好的Selenium程序,省时省力还可以复用,岂不美哉 应用场景 写好 .bat 可执行程序,从此快速摸鱼~ 作用 释义 一键摸鱼 一次性打开多个共上班摸鱼的网页(如:B站,虎牙… 一键数据采集 执行 .bat 可执行文件,即完成数据的采集 给到他人使用自己写的脚本 .bat 可执行文件给到对方,即可畅快运行(忽略环境安装 开机后一键启动多个程序
-
python快速查找算法应用实例
本文实例讲述了Python快速查找算法的应用,分享给大家供大家参考. 具体实现方法如下: import random def partition(list_object,start,end): random_choice = start #random.choice(range(start,end+1)) #把这里的start改成random()效率会更高些 x = list_object[random_choice] i = start j = end while True: while li
-
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
有时你需临时搭建一个简单的 Web Server,但你又不想去安装 Apache.Nginx 等这类功能较复杂的 HTTP 服务程序时.这时可以使用 Python 内建的 SimpleHTTPServer 模块快速搭建一个简单的 HTTP 服务器. SimpleHTTPServer 模块可以把你指定目录中的文件和文件夹以一个简单的 Web 页面的方式展示出来.假设我们需要以 Web 方式共享目录 /Users/Mike/Docker,只需要以下这个命令行就可以轻松实现: $ cd /Users/
-
pip install python 快速安装模块的教程图解
之前python安装模块要在网络上下载,从python2.7.9之后,以及python3,python就自带pip 这个命令,能够快速的安装模块 1, 首先打开python的主文件夹 2.在主文件夹里面有一个Script文件,打开Script文件 3 复制这个文件目录 4,在我的电脑图标,右键,点击属性 最后点击确定,即可 然后打开命令提示符 总结 以上所述是小编给大家介绍的pip install python 快速安装模块的教程图解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时
-
python 快速把超大txt文件转存为csv的实例
今天项目有个需求,就是把txt文件转为csv,txt之间是空格隔开,转为csv时需要把空格转换为逗号,网上找的一个版本,只需要三行代码,特别犀利: import numpy as np import pandas as pd data_txt = np.loadtxt('datas_train.txt') data_txtDF = pd.DataFrame(data_txt) data_txtDF.to_csv('datas_train.csv',index=False) 上述的datas_tr
-
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
SimpleHTTPServer SimpleHTTPServer是Python自带的一个HTTP服务类,通过使用它,我们能够在任意平台(Window,Linux,MacOS)快速搭建一个HTTP服务和共享服务,只需要安装Python环境即可 如何使用 如果你想开启一个运行在特定端口上的文件共享服务,可以执行如下命令 python -m SimpleHTTPServer [port] 这将会把当前目录下的文件和目录显示出来,如果我们不指定端口,默认为8000 当然上述命令也开启了一个HTTP服务
-
使用python快速在局域网内搭建http传输文件服务的方法
在工作和学习中如果同时传输多个文件,大的安装包,python提供了一种无线传输的方法,开启一个本地http服务器,同一局域网下可方便访问 经测试下载速度可达13M/s的稳定速度! 下面分别展示linux下和windows下实现方法 Linux 操作系统 在 Linux 操作系统上安装了 Python 的机器上或者在Linux服务器上,可使用 nohup python -m SimpleHTTPServer [port] & 快速搭建一个http服务. 在 Linux 服务器上或安装了 Pytho
-
在Python 字典中一键对应多个值的实例
如下所示: #encoding=utf-8 print '中国' #字典的一键多值 print'方案一 list作为dict的值 值允许重复' d1={} key=1 value=2 d1.setdefault(key,[]).append(value) value=2 d1.setdefault(key,[]).append(value) print d1 #获取值 print '方案一 获取值' print list(d1[key]) print '方案一 删除值,会留下一个空列表' d1[
随机推荐
- 自己动手制作jquery插件之自动添加删除行功能介绍
- JavaScript 大数据相加的问题
- golang操作mongodb的方法
- JavaScript动态生成二维码图片
- PHP实现的蚂蚁爬杆路径算法代码
- Windows server 2008 r2上安装MySQL5.7.10步骤
- insert into tbl() select * from tb2中加入多个条件
- IE的有条件注释判定IE版本详解(附实例代码)
- js中 关于undefined和null的区别介绍
- 制作符合用户体验的漂亮的input输入框
- 如何让IE和Netscape共享书签和收藏夹
- C语言 动态内存分配的详解及实例
- Python设计模式中单例模式的实现及在Tornado中的应用
- python实现向ppt文件里插入新幻灯片页面的方法
- javascript中打印当前的时间实现思路及代码
- 操作Oracle的php类
- Java多线程中不同条件下编写生产消费者模型方法介绍
- Vim如何使用相对行号实现一切操作详解
- 关于vue状态过渡transition不起作用的原因解决
- vue搜索和vue模糊搜索代码实例