基于模糊聚类的色彩迁移算法

文章目录


  接下来要讲到的色彩迁移算法是国内学者钱小燕等人提出的一种基于模糊集理论的色彩迁移算法。
  在介绍FCM色彩迁移算法之前需要对模糊集与聚类算法有一些基础的了解,具体可参照这份文档,讲的比较详细:https://download.****.net/download/qq_38701868/11231322

  这种颜色聚类算法利用FCM思想把源图像和目标图像分成若干包含不同颜色特征的聚类域;模糊聚类思想使得图像中各点的不同隶属度属于各聚类域;在选择匹配域,为每个聚类域设置一个匹配权值参数,根据目标图的特征采用不同的权值计算方法,并根据目标图中的匹配权值在源图中选取一个与之最接近的域作为匹配域;在颜色传输过程中,引入隶属度因子对各聚类域的处理结果进行平滑,以解决图像中存在不确定性信息的情况。
  设待处理图像的大小 I = S * H, 进行聚类的个数 N = S * H,则 I 可表示为 I = {p1,p2,p3…Pn},其中 pi={pkl,pka,pkb}p_{i}=\left \{ p_{k}^{l},p_{k}^{a},p_{k}^{b} \right \},将图像分为 c 类,聚类中心可表示为 V = {V1,V2,V3…Vc}。用 Uik 表示像素 Pk 到聚类域 Vi 的隶属度。
  算法的具体步骤如下:
  step1:将图像从 RGB 颜色空间转到 lab 颜色空间
  step2:初始化基本参数:聚类个数 c、加权指数 m、算法最大迭代次数 LOOP、终止误差 e > 0。
  step3:初始化聚类中心与隶属度矩阵
  step4:当迭代次数 T < LOOP 时,对所有聚类中心Vi(i = 1,2,3…c)根据公式计算隶属度矩阵:
    如果Pk != Vi,则
               uik=1/j=1c(dik/djk)2/(m1)u_{ik} = 1/\sum_{j=1}^{c}(d_{ik}/d_{jk})^{2/(m-1)},k = 1,2,3…N
  否则,若当前像素为聚类中心 Vi ,则 Uik = 1,若当前像素点为其他非 Vi 的聚类中心,则 Uik = 0。
  其中,dik 为第 k 个像素点到 第 i 个聚类中心的欧氏距离:
基于模糊聚类的色彩迁移算法
  step5:进行聚类划分,计算新的聚类中心:
基于模糊聚类的色彩迁移算法

  step6:检查收敛情况,若新计算出的聚类中心到上一个聚类中心的距离小于 e ,则算法介绍,否则返回步骤4继续迭代计算。

  在聚类划分后,根据目标图像的不同,计算匹配权值:
  若图像为灰度图,根据 l 通道计算权值:
基于模糊聚类的色彩迁移算法
基于模糊聚类的色彩迁移算法
  其中,Z为规范化加权因子 Ck 为第 k 个聚类域

  若目标图为彩色图像,根据三个通道计算匹配权值:
基于模糊聚类的色彩迁移算法

  最后,扫描目标图像的每个像素点,设像素点 Pk 的归属聚类域的对应匹配域为 h,则按公式转换通道值:
基于模糊聚类的色彩迁移算法
其中,下标 T 表示源图像,下标 S 表示目标图像。

算法结果:
彩色图像之间:
基于模糊聚类的色彩迁移算法
基于模糊聚类的色彩迁移算法
彩色图像与灰度图像之间:
基于模糊聚类的色彩迁移算法
基于模糊聚类的色彩迁移算法