利用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使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
Python中的枚举类型示例介绍
Jan 09 Python
python中dict使用方法详解
Jul 17 Python
python实现电子书翻页小程序
Jul 23 Python
pygame实现成语填空游戏
Oct 29 Python
Python3并发写文件与Python对比
Nov 20 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
Python pip install如何修改默认下载路径
Apr 29 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
pycharm 实现调试窗口恢复
Feb 05 Python
pandas按条件筛选数据的实现
Feb 20 Python
python编写扎金花小程序的实例代码
Feb 23 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开发环境配置记录
2011/01/14 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
javascript 常用方法总结
2009/06/03 Javascript
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
大学生旷课检讨书
2014/01/22 职场文书
五年级学生评语
2014/04/22 职场文书
第二课堂活动总结
2014/05/07 职场文书
分公司负责人任命书
2014/06/04 职场文书
服装设计专业求职信
2014/06/16 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
学生病假条范文
2015/08/17 职场文书
2016教师国培研修感言
2015/12/08 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python