利用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 11 Python
在Python操作时间和日期之asctime()方法的使用
May 22 Python
Python配置mysql的教程(推荐)
Oct 13 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
Python @property使用方法解析
Sep 17 Python
如何表示python中的相对路径
Jul 08 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
Python配置pip国内镜像源的实现
Aug 20 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 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 Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python3 max()函数基础用法
2019/02/19 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
架构师岗位职责
2013/11/18 职场文书
行政总监岗位职责
2013/12/05 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
律师催款函范文
2015/06/24 职场文书
初三语文教学反思
2016/03/03 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python