牛逼,4.7k Star,Github上发现一款超强的开源项目!!
扫描二维码
随时随地手机看文章
哈喽,大家好,我是月亮。一个工作n年的老程序员啦,平时喜欢在Github上瞎逛,顺便淘一些有意思的小工具~
今天在Github上瞎逛的时候,发现了一个有趣的小项目,但是由于一些特殊的原因,犹豫了一下要不要推荐给大家。
后来想了想,还是推荐吧,毕竟这个项目还是很好玩的。
至于为什么好玩的项目,有不想推荐给大家的打算呢... ...
完全是因为月亮是个老java程序员,能抡动的大刀只有java和js。
而今天这个项目,他喵的,使用的语言是python。
不过没关系,拿出我200分钟的python开发经验,还是能够hold住的~
题外话:简单易学,是python最大的优点,只要你会其他的编程语言,学python真的是分分钟就能入门。
希望大家不要被编程语言限制住了好奇心。
持续保持探索的心态,才是一个程序员不断精进的秘诀。
项目简介
今天给大家推荐的项目是rembg。
rembg是一个去除图片背景的工具,一行代码轻松地就能去掉图片的背景,那可不比手动抠图快得多嘛。
想想用PS的经历,一点一点地把要抠的内容圈出来,这个过程老费时间了。
敲代码多炫酷,敲两行代码就能搞定的事儿,干嘛还得在操作界面上点点点... ...
rembg在Github上已经有4.1k Star了,赶紧来尝试一下。
安装第三方库
这里大家要注意一下,rembg支持的python版本是3.9,如果版本不对应需要调整一下。
并且只能使用python3.9。
我安装的python版本是3.9.5,使用rembg没有任何问题,大家可以参考一下我的版本。
安装命令如下:
#CPU支持 pip install rembg #GPU支持 pip install rembg[gpu]
果然,还是踩坑了,安装的过程出现问题了。
其实错误信息不看也罢,最后排查出问题的根源,完全就是因为网络导致的,没有代码层面的事儿。
只要你把网络调整一下,能够稳定地使用谷歌搜索,基本就能正常安装了。
去除单张图片背景
命令行模式
安装完成可以直接在命令行中进行调用,连python代码都不用写。
参考命令如下:
rembg i 原图全路径 输出图片全路径
rembg i D:/img/111.jpeg D:/img/aaa.jpeg
我先去下载了一张小姐姐的图片,给大家看一下原图是这样的。
抠图效果简直了,比我手动用PS抠出来的效果还要好!
代码模式
同样的功能,如果想要在python代码中实现,可参考下面这段代码。
大家自己尝试的时候,只需要修改一下图片的路径就可以了。
from rembg import remove # 输入图片路径 input_path = 'D:/img/111.jpeg' # 输出图片路径 output_path = 'D:/img/aaa.jpeg' with open(input_path, 'rb') as i: with open(output_path, 'wb') as o: input = i.read() output = remove(input) o.write(output)
去除文件夹所有图片背景
上面介绍了单张图片背景的方法,那去除多张图片的背景呢?
作为程序员,处理一条数据和多条数据能有啥区别?套个循环不就能搞定了。
但是rembg已经帮我们考虑到这个问题了,完全不需要自己写循环去处理。
同样一条简单的命令就能搞定:
rembg p 输入文件夹 输出文件夹
rembg p d:/img d:/img2
去除网络图片背景
除开这两项基本功能,rembg还支持给定图片的网络地址,直接把图片去除背景后给我们下载在本地。
同样也只需要一个简单的命令就能搞定,连下载图片的操作都省去了,我就想问一句:6 不 6 ?
命令参考如下:
curl -s 网络图片路径 | rembg i > 存储位置全路径
curl -s https://xxx.com/9f6d15e60674.jpg | rembg i > d:/img/666.png
其他功能
除开上面介绍到的功能,rembg还能作为单独的一个服务使用。
这个用法稍微麻烦一点,最简单的使用方式就是用命令行来操作。
不过,大家有兴趣可以自行尝试作为服务的使用方法。
好了,今天的介绍就到这里,咱们下期见~
项目地址
公众号后台回复rembg,即可获取rembg项目地址。