当前位置:首页 > > 了不起的程序员
[导读]今天在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项目地址。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭