Python中的mark_boundaries()函数用于生成图像的分割边界
发布时间:2024-01-19 19:24:59
mark_boundaries()函数是scikit-image库中的一个函数,用于生成图像的分割边界带。该函数主要是根据图像的分割结果和边界信息,将图像中不同的物体或目标用不同的边界颜色标识出来,以便更好地显示图像的分割结果。下面是一个使用mark_boundaries()函数的例子:
import matplotlib.pyplot as plt
from skimage.segmentation import slic
from skimage.util import img_as_float
from skimage.segmentation import mark_boundaries
from skimage import io
# 读取图像
image = io.imread('image.jpg')
# 将图像转换为浮点型
image = img_as_float(image)
# 使用SLIC算法进行图像分割
segments = slic(image, n_segments=100, compactness=10)
# 生成分割边界带
boundaries = mark_boundaries(image, segments, color=(1, 0, 0))
# 显示原始图像和分割边界带
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
ax[0].imshow(image)
ax[0].set_title('Original Image')
ax[1].imshow(boundaries)
ax[1].set_title('Segmentation Boundaries')
plt.show()
在上述例子中,首先使用io.imread()函数读取了一张图像,并使用img_as_float()函数将图像转换为浮点型。然后使用slic函数对图像进行分割,分割的参数是n_segments和compactness,分别代表分割的块数和分割的紧密度。接下来,使用mark_boundaries()函数生成分割边界带,其中的color参数代表边界的颜色,这里设置为红色。最后,用matplotlib.pyplot库中的imshow()函数显示原始图像和分割边界带。
通过上述例子,可以清晰地显示出图像的分割结果,并用红色边界将不同的物体或目标标识出来,方便观察和分析图像的分割效果。
