欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 使用 ultralytics库的SAM / FastSAM 进行图像分割的步骤

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

2025/9/18 11:44:00 来源:https://blog.csdn.net/weixin_43269994/article/details/142626620  浏览:    关键词:使用 ultralytics库的SAM / FastSAM 进行图像分割的步骤

1. 环境准备

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

pip install opencv-python ultralytics

2. 加载模型

加载 SAM 模型的代码如下:

from ultralytics import FastSAM
from ultralytics import SAMmodel = 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 cv2for 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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词