利用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实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
Python可变参数用法实例分析
Apr 02 Python
Python的语言类型(详解)
Jun 24 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
python中类的属性和方法介绍
Nov 27 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
python实现dijkstra最短路由算法
Jan 17 Python
python实现海螺图片的方法示例
May 12 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
python中用ggplot绘制画图实例讲解
Jan 26 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查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
JQuery 入门实例1
2009/06/25 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
jquery结合html实现中英文页面切换
2016/11/29 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
python排序函数sort()与sorted()的区别
2018/09/18 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
社区学习十八大感想
2014/01/22 职场文书
函授药学自我鉴定
2014/02/07 职场文书
开朗女孩的自我评价
2014/02/10 职场文书
消防安全责任书范本
2014/04/15 职场文书
文明家庭事迹材料
2014/12/20 职场文书
大学辅导员述职报告
2015/01/10 职场文书
机动车交通事故协议书
2015/01/29 职场文书
网络研修心得体会
2016/01/08 职场文书
校园安全学习心得体会
2016/01/18 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
Django中celery的使用项目实例
2022/07/07 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python