Py学习  »  Python

一个能批量抠图的开源神器,网友:Python 已经无所不能

Python开发者 • 3 年前 • 444 次点击  

【导语】:一款可用于快速移除背景图片的开源工具,安装配置后可在服务器、命令行中对图片进行批量操作。


简介


rembg 是使用 Python 实现的用于移除背景图片的工具,要求 Python 3.8 或更高版本,支持批量操作,使用方式比较灵活,可以直接使用命令行、作为服务运行、在 docker 中使用,还可以作为库调用。


下载安装


项目的源码地址是:

https://github.com/danielgatis/rembg


要求 Python 3.8 或更高版本,使用以下命令进行安装:

pip install rembg

简单使用


1、在命令行中使用


在命令行中可以对服务端图片、本地图片以及整个文件夹图片进行操作,如下:

(1)对远程图片进行操作:

curl -s http://input.png | rembg > output.png

(2)对本地图片进行操作:

rembg -o path/to/output.png path/to/input.png

(3)对整个文件夹里的图片进行操作:

rembg -p path/to/inputs


2、作为服务使用

(1)启动服务

rembg-server

(2)如果图片可以直接链接访问,则可以通过浏览器直接打开以下地址操作:

http://localhost:5000?url=http://image.png

也可以使用HTML表单通过上传文件的形式进行操作:

<form action="http://localhost:5000" method="post" enctype="multipart/form-data">    <input type="file" name="file"/>    <input type="submit" value="upload"/> form>

3、在docker中使用


在docker中使用也很方便,直接运行以下命令:

curl -s http://input.png | docker run -i -v ~/.u2net:/root/.u2net danielgatis/rembg:latest > output.png


4、作为库调用


直接在脚本里调用也很简便,先创建app.py,内容如下:

import sysfrom rembg.bg import removesys.stdout.buffer.write(remove(sys.stdin.buffer.read()))

再执行命令运行:

cat input.png | python app.py > out.png

项目样例使用效果:



高级使用


有些图片可能使用alpha matting模式(即使用-a -ae 15选项)处理效果会更加完美,命令如下:

curl -s http://input.png | rembg -a -ae 15 > output.png

效果对比图如下:



结语


remgb简单介绍就到这里了,感兴趣的童鞋可以亲自下载安装体验一下,更详细介绍,请见项目主页。



- EOF -

推荐阅读  点击标题可跳转

1、PyCharm vs VSCode,是时候改变你的 IDE 了!

2、这个 2 万 Star 的中文 Python 资源太棒了

3、这 10 个 Python 可视化工具,你用过哪些?


觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/100169
 
444 次点击