利用Python代码实现一键抠背景功能


Posted in Python onDecember 29, 2019

前言

又是一个逛csdn发现的一个有趣的小项目,可以一键抠背景,需要用到removebg模块及其API,API可从其官网免费获取,网址如下https://www.remove.bg/zh

ps:加上/zh后,网页内容会显示中文

  1. 首先是安装removebg模块
  2. 然后就敲代码了,官方使用文档是个好东西,应该好好利用

有趣的是,意外发现了两种使用API的方法

1.用到爬虫的知识,利用requests模块,从网页上调用,直接实现抠背景

# Requires "requests" to be installed (see python-requests.org)
import requests

response = requests.post(
 'https://api.remove.bg/v1.0/removebg',
 files={'image_file': open('/path/to/file.jpg', 'rb')},
 data={'size': 'auto'},
 headers={'X-Api-Key': 'INSERT_YOUR_API_KEY_HERE'},
)
if response.status_code == requests.codes.ok:
 with open('no-bg.png', 'wb') as out:
 out.write(response.content)
else:
 print("Error:", response.status_code, response.text)

效果如下:

利用Python代码实现一键抠背景功能

利用Python代码实现一键抠背景功能

2.参照removebg库中的使用说明调用API,用相关代码实现抠背景

从gitub上下载removebg库源码时会有一个使用说明,即README.md,链接如下
https://github.com/brilam/remove-bg

利用Python代码实现一键抠背景功能

上代码,这里就只展示处理单张图片的代码,批量处理图片以及根据url处理图片的相关代码均在README.md中有展示

from removebg import RemoveBg
# 抠单张图片
rmbg = RemoveBg("xxxxx", "error.log") # 引号内是你获取的API
rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬虫\长颈鹿1.jpg",size='regular') # 图片地址

效果如下

利用Python代码实现一键抠背景功能

from removebg import RemoveBg
# 抠单张图片
rmbg = RemoveBg("P3UCVZzKiUxW7BbkmcRYhgTB", "error.log") # 引号内是你获取的API
rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬虫\长颈鹿1.jpg",size='regular',bg_color='e.g.red') # 图片地址

利用Python代码实现一键抠背景功能

但奇怪的是加上填充纯色背景的属性bg_color='e.g.red'后会有这样的报错,尚未解决

后来使用了PIL库来实现背景的填充

from PIL import Image

# 加载已去背景的图像
im = Image.open('./pic/no-bg.png')
x, y = im.size

try:
 # 填充红色背景
 p = Image.new('RGBA', im.size, (255, 0, 0))
 p.paste(im, (0, 0, x, y), im) #paste的背景尺寸需与原图尺寸相同
 # 保存填充后的图片
 p.save('./pic/no-bg_red_bg.png')
 p.show() #显示处理后的图片
except:
 with open('./error1.log', 'a') as f:
 f.write('background change fail .')

效果如下

利用Python代码实现一键抠背景功能

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python获取本机外网ip的方法
Apr 15 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
使用Python写CUDA程序的方法
Mar 27 Python
Python绑定方法与非绑定方法详解
Aug 18 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
Django学习笔记之为Model添加Action
Apr 30 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
Python递归实现打印多重列表代码
Feb 27 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
基于python实现计算两组数据P值
Jul 10 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 #Python
Python使用正则实现计算字符串算式
Dec 29 #Python
Django框架教程之中间件MiddleWare浅析
Dec 29 #Python
三个python爬虫项目实例代码
Dec 28 #Python
python scrapy重复执行实现代码详解
Dec 28 #Python
Python统计时间内的并发数代码实例
Dec 28 #Python
如何基于python实现脚本加密
Dec 28 #Python
You might like
基于jquery循环map功能的代码
2011/02/26 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Python Xml文件添加字节属性的方法
2018/03/31 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python实现飞机大战游戏
2020/10/26 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
python flask搭建web应用教程
2019/11/19 Python
简单的Python人脸识别系统
2020/07/14 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
如何用Python绘制3D柱形图
2020/09/16 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
实习自我鉴定模板
2013/09/28 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
英语专业求职信
2014/07/08 职场文书
关于美容院的活动方案
2014/08/14 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers