查看原文
其他

一个去除图片背景的抠图利器

TJ TJ君 2022-05-20

大家好,我是TJ

关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍

TJ君将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU

平时小伙伴们看到一些图片,是不是会有特别喜欢其中的某些部分,想把那块抠下来的冲动?今天呢TJ君就和大家分享一个 用Python开发的去除图片背景的小工具,Rembg

有了Rembg,以后看到喜欢的图案,都可以轻轻松松的拿出来,不信?TJ君先给大家看下效果:

是不是很不错呢?

需要注意一点,Rembg目前只支持Python 3.9版本,可以支持CPU或者GPU:

#CPU
pip install rembg

#GPU
pip install rembg[gpu]

同时Rembg可以有多种不同的使用方式,接口、服务、library或者是docker

接口

#从远程图像中删除背景

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

#从本地图片中删除背景

rembg i path/to/input.png path/to/output.png

#删除文件夹中所有图像的背景

rembg p path/to/input path/to/output

服务

#启动服务

rembg s

#打开浏览器

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

#也可以这样做

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

library

#用bytes输入输出

from rembg import remove

input_path = 'input.png'
output_path = 'output.png'

with open(input_path, 'rb') as i:
    with open(output_path, 'wb') as o:
        input = i.read()
        output = remove(input)
        o.write(output)


#用PIL image输入输出

from rembg import remove
from PIL import Image

input_path = 'input.png'
output_path = 'output.png'

input = Image.open(input_path)
output = remove(input)
output.save(output_path)


#用数组输入输出

from rembg import remove
import cv2

input_path = 'input.png'
output_path = 'output.png'

input = cv2.imread(input_path)
output = remove(input)
cv2.imwrite(output_path, output)

docker

docker的话可以试试这个:

cat in.png | docker run -i --rm danielgatis/rembg i > out.png

对图片抠图感兴趣的小伙伴,抓紧来试试啦

点击下方卡片,关注公众号“TJ君

回复“Rembg2022”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东


往期推荐

非常时期必备的囤货手册!

可能是最流行的Mysql SQL审核平台

视频号过一会就看不了?有这个小工具就不怕了


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存