人像晶格化-超像素预分割+块内均值

人像晶格化-超像素预分割+块内均值

一、晶格化效果

使用超像素分割算法SLIC进行聚类,在每个类中进行均值化。
项目地址:https://github.com/wchstrife/DigitalImageProcessing

1.1 运行环境

  • python 3.7
  • skimage
  • tqdm
  • numpy

1.2 运行

  1. cd SLIC-Superpixels
  2. python slic.py

1.3 算法原理

SLIC算法采用了K-means的算法思想,对于像素进行聚类,同时为了降低算法复杂度,只考虑某一区域进行聚类。在考量距离时,同时考虑LAB颜色空间和XY距离空间。

算法的输入只有一个参数K,代表要分割K个像素,假设原来图像有N个像素,则每个超像素大小为N/K,超像素的边长为 S = N / K S=\sqrt{N/K} S=N/K

首先将K个聚类的中心均匀的分布在图像上,然后调整聚类中心的位置:放在K为中心3*3的区域内梯度最小的点上,这样可以防止超像素中心落在噪点和边界上。

用一个label数组记录像素点属于哪个聚类,dist数组记录到像素中心的距离。

对于聚类中心X,计算周围2S范围内的点,使用公式更新dist数组中的最小距离,并且更新其属于哪个聚类。距离公式如下:

d c = ( l j − l i ) 2 d_c = \sqrt{(l_j - l_i)^2} dc=(lj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值