利用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使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
浅析Git版本控制器使用
Dec 10 Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
python函数定义和调用过程详解
Feb 09 Python
Python中os模块功能与用法详解
Feb 26 Python
Django 5种类型Session使用方法解析
Apr 29 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 Python
python的变量和简单数字类型详解
Sep 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扩展图文教程
2008/12/12 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
JS代码放在head和body中的区别分析
2011/12/01 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
职专应届生求职信
2013/11/16 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
文明单位汇报材料
2014/12/24 职场文书
消防隐患整改通知书
2015/04/22 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
Python创建SQL数据库流程逐步讲解
2022/09/23 Python