利用Python代码实现一键抠背景功能
2020-02-13 10:05
567 查看
前言
又是一个逛csdn发现的一个有趣的小项目,可以一键抠背景,需要用到removebg模块及其API,API可从其官网免费获取,网址如下https://www.remove.bg/zh
ps:加上/zh后,网页内容会显示中文
- 首先是安装removebg模块
- 然后就敲代码了,官方使用文档是个好东西,应该好好利用
有趣的是,意外发现了两种使用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)
效果如下:
2.参照removebg库中的使用说明调用API,用相关代码实现抠背景
从gitub上下载removebg库源码时会有一个使用说明,即README.md,链接如下
https://github.com/brilam/remove-bg
上代码,这里就只展示处理单张图片的代码,批量处理图片以及根据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') # 图片地址
效果如下
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') # 图片地址
但奇怪的是加上填充纯色背景的属性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利用面向对象的思想实现功能代码练习
- xml学习(三)---利用xml文件实现数据岛功能(网页显示xml文件中的内容免C#代码操作xml文件)
- 翻译文章“AST 模块:用 Python 修改 Python 代码”---!!注意ironpathyon未实现此功能
- Python利用字典实现switch功能
- 使用python代码实现三叉搜索树高效率”自动输入提示”功能
- 利用python 实现微信公众号群发图片与文本消息功能
- Python WXPY实现微信监控报警功能的代码
- 利用python实现微信头像加红色数字功能
- python 利用ftplib模块 实现ftp上传下载代码
- OC简单小功能的实现-利用三个代表三原色的滑块控制背景颜色变化
- Android 利用工具实现一键自动findViewById功能
- 一行python代码实现神奇功能
- 利用Python实现多线程聊天功能
- Python 40行代码实现人脸识别功能
- Python+tkinter使用40行代码实现计算器功能
- JS实现一键回顶功能示例代码
- 利用后台代码设计或实现水晶报表工具栏相关功能