利用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 不同对象比较大小示例探讨
Aug 21 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
python列表的逆序遍历实现
Apr 20 Python
如何解决安装python3.6.1失败
Jul 01 Python
学python爬虫能做什么
Jul 29 Python
Python使用windows设置定时执行脚本
Nov 12 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
一个取得文件扩展名的函数
2006/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
在Python中COM口的调用方法
2019/07/03 Python
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
教师求职自荐信
2014/03/09 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
施工安全生产承诺书
2014/05/23 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
学校节水倡议书
2015/04/29 职场文书
学校工会工作总结2015
2015/05/19 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python