利用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 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
django中模板的html自动转意方法
May 27 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
python 求10个数的平均数实例
Dec 16 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
python 读取二进制 显示图片案例
Apr 24 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
django使用channels实现通信的示例
Oct 19 Python
Python爬虫回测股票的实例讲解
Jan 22 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
php数据库连接
2006/10/09 PHP
php 中include()与require()的对比
2006/10/09 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
2019/03/21 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
Python中实现参数类型检查的简单方法
2015/04/21 Python
Python安装第三方库的3种方法
2015/06/21 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
Python 实现向word(docx)中输出
2020/02/13 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
艺术学院毕业生自我评价
2014/03/02 职场文书
公司保密承诺书
2014/03/27 职场文书
5s标语大全
2014/06/23 职场文书
初级党校心得体会
2014/09/11 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
《所见》教学反思
2016/02/23 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
mysql sql常用语句大全
2022/06/21 MySQL