SLIC分割并保存分割得到的超像素块
- 原理不多说了,简化了一下参考的博客
SLIC超像素分割并保存分割得到的超像素块 - 要求:处理彩色三通道图像且分割后的图像就在原来的位置(上面博客只裁剪出仅包含当前区域的子图像)
- 代码如下:
from skimage.segmentation import slic,mark_boundaries
from skimage import io
import matplotlib.pyplot as plt
import numpy as np
img = io.imread('data/test/tamper/112_rgb.png')
segments = slic(img, n_segments=10, compactness=10, start_label=1)
out=mark_boundaries(img,segments)
plt.title("n_segments=10")
plt.imshow(out)
plt.show()
num = np.max(segments)
for i in range(1, num+1):
mask = np.array(segments == i)
segment_img = img.copy()
segment_img[np.logical_not(mask)] = 0
io.imsave(f'data/test/tamper/segment_{i}.png', segment_img)
- 运行结果