Welsh色彩迁移算法

  Welsh 等人在 Reinhard 等人的算法基础上,提出了通过彩色的目标图像为源图的灰度图像上色的色彩传递算法。在灰度图中,图像灰度值可以体现图像上各个部分之间的差异,他们根据像素亮度及其邻域统计特征的相似性寻找目标像素的最佳匹配点,从而实现了经典的色彩传递技术,即将源彩色图像的颜色根据亮度一致性给目标灰度源图像上色。该算法主要是通过在源图像中查找目标像素的最佳亮度匹配像素,从而进行色彩传递。算法根据 Reinhard 等人的算法在 lαβ 颜色空间根据亮度寻找与目标像素最佳的匹配像素,将匹配像素的色彩传递给目标像素完成色彩传递过程。具体算法步骤如下:
  1.将源图像和目标图像从 RGB 颜色空间转换到 lαβ 颜色空间。
  2.为了防止目标图像和源图像之间由于整体灰度差异而造成色彩传递质量下降,在进行色彩传递操作之前,先对源图像进行亮度重映射,将源图像的亮度的均值和方差调整后,使其与自标图像的亮度均值和方差一致,在源图像中采用随机选出一定数量的样本点。亮度重映射的公式如下:

            L = (nl’ / nl)* (l – ml) + ml’
  即: 彩色图像重映射后的亮度 =
          (灰度图像的标准差 / 彩色图像的标准差)
                    *
          (彩色图像重映射前的亮度 - 彩色图像重映射前的亮度平均值)
                    +
               灰度图像的亮度平均值

  其中 :
  L 为彩色源图像每个像素重映射后的亮度值
  l 为彩色源图像每个像素重映射前的亮度值
  ml 和 ml’ 分别为彩色源图像和灰度目标图像所有像素亮度的平均值
  nl 和 nl’ 分别为彩色源图像和灰度目标图像所有像素亮度的标准偏差。

  3.按照扫描线顺序对灰度目标图像的每个像素进行扫描,在彩色源图像的随机样本集中寻找目标像素的最佳匹配样本。像素匹配是比较灰度图像与样本集中的权值相近程度,选匹配程度最高的那个。通常邻域大小取像素周围5X5范围。权值计算公式如下:

              W = l/2 + σ/2
  其中:
  W 为权值
  l 为像素的亮度值
  σ 为像素点周围某个邻域内亮度值的标准差。

4.将最佳匹配像素的颜色信息,即 α , β 通道的值传递给目标图像中的每个像素对应的 α β 通道。
5.将源图像和目标图像从 lαβ 颜色空间转换至 RGB 颜色空间,完成传递算法,得到最终的目标结果图像。

程序运行结果:
Welsh色彩迁移算法_第1张图片
Welsh色彩迁移算法_第2张图片

welsh 代码可参考这位博主的:https://blog.csdn.net/zsy162534/article/details/52086331


或者
在之前写过的一个QT项目,里面有 Reinhard、Welsh和FCM色彩迁移算法的实现:https://download.csdn.net/download/qq_38701868/12034242

没下载积分的可百度网盘自取:
链接:https://pan.baidu.com/s/1kW98v9g_Nq1Yj6_YIHW3mQ
提取码:1u97

你可能感兴趣的:(#,色彩传递)