我正在参加「掘金·启航计划」
安装 pip install backgroundremover
python 环境使用
import os
os.system('backgroundremover -i "in.png" -o "out.png"')
或者 shell 执行
backgroundremover -i " in.jpeg " -o " output.png "
如果没有科学上网,需要下载预训练包,下载地址: github.com/OPHoperHPO/…
然后放到合适的位置,比如 /Users/myname/.u2net/
但是,这个只能去除一张照片,现在写个 shell 脚本,以便批量处理:
#!/bin/bash
find ./归档 -name "*.JPG" > in.txt
find ./归档 -name "*.JPG" | awk -vb=./归档_结果/ -F '[ /]' '{jpgOut=b$3;print jpgOut}' > out.txt
exec 3<"in.txt"
exec 4<"out.txt"
while read line1<&3 && read line2<&4
do
echo $line1 $line2
backgroundremover -i $line1 -o $line2
done
假设我现在需要批量处理的图片的路径是 /Users/Downloads/tmp/归档
那么 cd 到 /Users/Downloads/tmp,然后:
1.新建文件夹
makir 归档_结果
现在生成了一个空目录 /Users/Downloads/tmp/归档_结果,生成的图片将保存在这里面
2.新建脚本
vim doit.sh
打开脚本后输入以下内容
#!/bin/bash
find ./归档 -name "*.JPG" > in.txt
find ./归档 -name "*.JPG" | awk -vb=./归档_结果/ -F '[ /]' '{jpgOut=b$3;print jpgOut}' > out.txt
exec 3<"in.txt"
exec 4<"out.txt"
while read line1<&3 && read line2<&4
do
echo $line1 $line2
backgroundremover -i $line1 -o $line2
done
保存退出后执行:
sh doit.sh
成功。
当然,也可以使用诸如 removebg 之类的工具(www.remove.bg/zh), 如果要使用的话,参考代码
# -*- coding: utf-8 -*-
""" @ auth : carl_DJ @ time : 2020-8-12 """
from removebg import RemoveBg
'''去除一张图片'''
#这里需要的是 removebg网站上的秘钥,如果错误,则输出到log文件中
rmbg = RemoveBg('输入removebg上的秘钥','rmgb_error.log')
#图片的地址
pict_path ='../image/remobg'
#执行去图片背景操作
rmbg.remove_background_from_img_file(f"{pict_path}/my_pict.jgp")
——来自 pythonmana.com/2021/08/202… 但是并不能免费无限批量使用,所以还是选择上面的办法吧。