利用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使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
python 截取 取出一部分的字符串方法
Mar 01 Python
Python中property属性实例解析
Feb 10 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
python使用Matplotlib画条形图
Mar 25 Python
使用Python计算玩彩票赢钱概率
Jun 26 Python
PyTorch预训练的实现
Sep 18 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
python 日志 logging模块详细解析
Mar 31 Python
python使用建议与技巧分享(二)
Aug 17 Python
python matlab库简单用法讲解
Dec 31 Python
全网非常详细的pytest配置文件
Jul 15 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父类调用子类方法的代码例子
2014/04/09 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
js中apply和call的理解与使用方法
2019/11/27 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
python判断无向图环是否存在的示例
2019/11/22 Python
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
毕业生自我推荐
2013/11/04 职场文书
《搭石》教学反思
2014/04/07 职场文书
毕业生就业协议书
2014/04/11 职场文书
跑操口号
2014/06/12 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2016年教师节慰问信
2015/12/01 职场文书
班主任寄语2016
2015/12/04 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
创业计划书之面包店
2019/09/17 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
学习nginx基础知识
2021/09/04 Servers
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技