利用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 08 Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
Python3写入文件常用方法实例分析
May 22 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
Python对象类型及其运算方法(详解)
Jul 05 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
python实现多线程端口扫描
Aug 31 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
利用python画出AUC曲线的实例
Feb 28 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
python如何实现递归转非递归
Feb 25 Python
python神经网络学习 使用Keras进行回归运算
May 04 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获取textarea的值并处理回车换行的方法
2014/10/20 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Python中的__init__作用是什么
2020/06/09 Python
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
new修饰符是起什么作用
2015/06/28 面试题
幼儿园秋游活动方案
2014/01/21 职场文书
促销活动总结范文
2014/04/30 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
工作保证书
2015/01/17 职场文书
Java spring单点登录系统
2021/09/04 Java/Android
Python编写冷笑话生成器
2022/04/20 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript