利用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实现感知器
Dec 19 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
Jan 17 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
python实现海螺图片的方法示例
May 12 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
Python递归实现打印多重列表代码
Feb 27 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
用Python提取PDF表格的方法
Apr 11 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
Python中单例模式总结
2018/02/20 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
爱国主义演讲稿
2014/05/07 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
爱心募捐通知范文
2015/04/27 职场文书
《灰雀》教学反思
2016/02/19 职场文书
详解MySQL的半同步
2021/04/22 MySQL