OpenCV的“超级像素分割”输出中的每个值是什么意思?

时间:2018-10-24 05:15:40

标签: python opencv

我目前正在从事超级像素细分。我正在使用简单线性迭代聚类(SLIC)。这是代码

# load the image and apply SLIC and extract (approximately)
# the supplied number of segments
image = cv2.imread(args["image"])
segments = slic(img_as_float(image), n_segments = 100, sigma = 5)

# show the output of SLIC
fig = plt.figure("Superpixels")
ax = fig.add_subplot(1, 1, 1)
ax.imshow(mark_boundaries(img_as_float(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)), segments))
plt.axis("off")
plt.show()

我得到的段输出为

array([[ 0,  0,  0, ...,  7,  7,  7],
       [ 0,  0,  0, ...,  7,  7,  7],
       [ 0,  0,  0, ...,  7,  7,  7],
       ...,
       [76, 76, 76, ..., 84, 84, 84],
       [76, 76, 76, ..., 84, 84, 84],
       [76, 76, 76, ..., 84, 84, 84]])

细分中的每个值是什么意思?

1 个答案:

答案 0 :(得分:0)

您的用法使我认为这是scikit中的slic函数,对吗?

its documentation中的哪个表示返回的内容:

  

返回:   标签:2D或3D数组指示段标签的整数掩码。

这意味着它将像您提供的图像一样,它将告诉您每个像素的标签。因此,如果此返回图像的特定像素中的值为1,则表示它属于簇1,依此类推,直到您在If My.Computer.Network.Ping("192.168.20.251") Then Console.WriteLine("IP FOUND") Else Console.WriteLine("IP NOT FOUND") End If 中提供的值为止。

如果您有疑问,请发表评论:)