利用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 Spyder界面无法打开的解决方法
Apr 27 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 Python
Python最小二乘法矩阵
Jan 02 Python
python numpy实现文件存取的示例代码
May 26 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Django封装交互接口代码
Jul 12 Python
Python xlwings插入Excel图片的实现方法
Feb 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
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
Python与R语言的简要对比
2017/11/14 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
pandas 时间格式转换的实现
2019/07/06 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
vscode调试django项目的方法
2020/08/06 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
python基于win32api实现键盘输入
2020/12/09 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
互动出版网:专业书籍
2017/03/21 全球购物
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
最新教师自我评价分享
2013/11/12 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
员工团队活动方案
2014/08/28 职场文书
先进工作者推荐材料
2014/12/23 职场文书
企业介绍信范文
2015/01/30 职场文书
食品安全责任书范本
2015/05/09 职场文书
学校标语口号大全
2015/12/26 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Python面向对象之内置函数相关知识总结
2021/06/24 Python