使用 ultralytics库的SAM / FastSAM 进行图像分割的步骤

1. 环境准备

首先,确保你已经安装了所需的库:

pip install opencv-python ultralytics

2. 加载模型

加载 SAM 模型的代码如下:

from ultralytics import FastSAM
from ultralytics import SAM

model = FastSAM("FastSAM-s.pt") #使用fastsam
#model = SAM("FastSAM-s.pt")  #使用sam

3. 图像分割

通过模型对输入图像进行分割,并保存结果:

results = model("/media/lindsay/data/ultralytics-main/sam.jpg", save=True)
for r in results:
    print(f"Detected {len(r.masks)} masks")

4. 提取掩码数据

接下来,我们提取掩码数据,并将其转换为 NumPy 数组,便于后续处理:

masks = results[0].masks.data.cpu().numpy()

5. 保存和显示掩码

我们可以迭代每个掩码,保存为图像文件,并选择性地在窗口中显示:

import cv2

for index in range(len(masks)):
    mask_image = (masks[index] * 255).astype('uint8')
    cv2.imwrite(f"mask_image_{index}.png", mask_image)

6. 完整代码

将以上步骤整合在一起,完整代码如下:

import cv2
from ultralytics import FastSAM

# Load model
model = FastSAM("FastSAM-s.pt")

# Segment with point prompt
results = model("/media/lindsay/data/ultralytics-main/sam.jpg", save=True)
for r in results:
    print(f"Detected {len(r.masks)} masks")

# Extract and save masks
masks = results[0].masks.data.cpu().numpy()
for index in range(len(masks)):
    mask_image = (masks[index] * 255).astype('uint8')
    cv2.imwrite(f"mask_image_{index}.png", mask_image)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lindsayshuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值