python去除图片背景

        最近需要对图片进行处理,原因是往3d模型上贴图需要不带背景的图片,而一般图片或AI生成的图片都是有背景的,因此我需要对图片去背景化。

        好的,废话不多说,直接上源码吧

from rembg import remove
from PIL import Image

input = Image.open('图片路径')
output = remove(input)


# 保存到本地
output.save('输出图片路径')

        需要安装相应的安装包

pip install rembg
pip install pillow

        非常简单,当然还可以在此基础上做一下修改,给一个图片的url,处理后上传oss

from rembg import remove
from PIL import Image
import requests
from io import BytesIO
import oss2
import string
import random

access_key_id = "oss_id"
access_key_secret = "oss密钥"
bucket_name = "bucket名称"
endpoint = "endpoint"
auth = oss2.Auth(access_key_id, access_key_secret)
bucket = oss2.Bucket(auth, endpoint, bucket_name)

# 图片的URL地址,替换为你实际要处理的图片的URL
url = "https://xxxxxx/173313232927266436.png"
response = requests.get(url)
response.raise_for_status()  # 检查请求是否成功,若不成功则抛出异常
# 将获取到的图片内容转换为BytesIO对象,使其能像本地文件对象一样被Pillow库处理
image_bytes = BytesIO(response.content)
input = Image.open(image_bytes)
output = remove(input)

# 拼接这部分可以去掉
url_parts = url.split('/')
url_middle_part = '/'.join(url_parts[3:-1])
# 生成一个随机数
random_num = ''.join(random.choices(string.digits, k=16))
object_key = url_middle_part + '/' + random_num + '.png'
# 拼成url
file_url = '/'.join(url_parts[0:3]) + '/' + object_key

# 保存到oss
output_img_bytes = BytesIO()
output.save(output_img_bytes, format='PNG')
bucket.put_object(object_key, output_img_bytes.getvalue())
print("图片处理并上传oss成功", file_url)

看一下最后的效果吧

效果还是可以的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值