将使用slic分割的图像转换为可以在grabcu中使用

2024-04-20 04:53:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用skimage的slic把一幅图像分割成了超级像素。现在我想在超级像素上使用grabcut。我该怎么做呢?你知道吗

from skimage.segmentation import slic
from skimage.util import img_as_float
from skimage import io
import matplotlib.pyplot as plt
import argparse
import cv2
import numpy as np

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True, help = "Path to the image")
args = vars(ap.parse_args())

image = img_as_float(io.imread(args["image"]))

for numSegments in (100, 500):

    segments = slic(image, n_segments = numSegments, sigma = 5)

    bgdModel = np.zeros((1,65),np.float64)
    fgdModel = np.zeros((1,65),np.float64)

    cv2.grabCut(segments, bgdModel, fgdModel, 5)
    plt.imshow(segments)

Tags: fromioimageimportimgasnpargs