其他
一个去除图片背景的抠图利器
大家好,我是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、好用、有趣的东东