利用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合并字符串的3种方法
May 21 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
matplotlib作图添加表格实例代码
Jan 23 Python
pandas数值计算与排序方法
Apr 12 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
python基础梳理(一)(推荐)
Apr 06 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
Python基于requests库爬取网站信息
Mar 02 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 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
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
React快速入门教程
2017/01/17 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
解析Python中while true的使用
2015/10/13 Python
python 爬取微信文章
2016/01/30 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
详解Python核心对象类型字符串
2018/02/11 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
双创工作实施方案
2014/03/26 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL