import cv2
import numpy as np
from skimage.segmentation import felzenszwalb, slic, quickshift, watershed
from skimage.segmentation import mark_boundaries
from skimage.util import img_as_float
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
cv2.imshow("img",img)
segments_quick=quickshift(img,kernel_size=3,max_dist=6,ratio=0.5)#quickshift分割
print('Quickshift number of segments: {}'.format(len(np.unique(segments_quick))))
result=mark_boundaries(img,segments_quick)#标记边界
cv2.imshow("result",result)
cv2.waitKey()
cv2.destroyAllWindows()
Quickshift number of segments: 636
算法:快速移位图像分割算法(QuickShift)是一种与基于核均值漂移算法近似的二维图像分割算法,属于局部的(非参数)模式搜索算法系列(每个数据点关联到基础概率密度函数模式),QuickShift图像分割同时在多个尺度上计算分层分段并应用于由颜色空间和图像位置组成的五维空间中。dst=skimage.segmentation.quickshift(img, ratio, kernel_size, max_dist, return_tree, sigma, convert2lab, random_seed)
文献:Vedaldi, A. , & Soatto, S. . (2008). Quick shift and kernel methods for mode seeking. European Conference on Computer Vision.
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!