本文的影像任意感兴趣区域的色调一致性解决办法 次要是针对掩膜后的影像
相似这种 咱们对非背景区域的像素进行解决 其中非彩色局部咱们叫 待匀色区域
这种解决 对于 wallis 和直方图匹配 很容易实现
然而色彩转移就相对而言 艰难点
(1)色彩转移技术介绍
色彩转移的目标在于使得参考影像和待处理影像的 RGB 三维数据点簇形态和地位相匹配
留神:矩阵级联的时候 理论的成果是从右到左呈现的
这个 RGB 三维数据点簇 能够用这个网址 https://franciscouzo.github.i…
(2)任意区域的色彩转移
像素值为 255 的区域代表前景区域,即为待匀色区域;
步骤①将掩膜后的原始图像转为矩阵 rgbs,选定的参考图像转为矩阵 rgbt;
rgbs 矩阵转换的规定:
创立一个 3 行 M 列的矩阵 rgbs,其中 M 是原始图像的总像素个数,矩阵中初始元素值为 0。矩阵行数为 3,代表掩膜后原始图像的 RGB 三重量。
矩阵第一行代表 R 重量 行列数记为 a 行 b 列 把 R 重量的像素值 从第一列的 a 个像素先填充进 rgbs 的第一行,而后第二列从上到下持续填充 直到把所有像素填到 rgbs 的第一行中 G 重量和 B 重量也依照这个规定填充到第二行和第三行中。rgbt 的转换也是一样
这一步咱们要将待匀色区域的像素值 存储到矩阵中 也就是说 咱们把这个矩阵拿进去 变成三维数据点簇当前进行旋转平移缩放操作 把它变成和 ref 一样的三维点簇 变好之后 把这个矩阵再依照程序填充回原单位
就是说 原来待匀色区域的每个像素 咱们通过筛选把它选出来 变为整体而后调整它的值之后 再把它放回原来的单位。很像一个场景 从很多人外面抉择一部分人进去 而后训练他们,他们的能力值扭转当前,把每个人遣送回原单位,ok。所以次要就是三个过程:怎么选出来 怎么训练 怎么放回去 所以就依照这三个步骤写上面的文章
怎么选 :下面曾经把要解决的图像(前景 + 背景)和 ref 图像转为 矩阵了(之所以这么转矩阵 是投合 matlab 里 api 的矩阵转换规则)
步骤②:将要解决的图像中待匀色区域像素值存储到矩阵中
统计二值图中前景区域像素个数,记为 n 创立一个 3 行 n 列的矩阵 rgbs1 同样 rgbs1 的三行对应 RGB 三个重量中待匀色区域的像素 填充规定仍然是第一列 从上到下 第二列从上到下,始终到最初一列 只不过这次只有前景区域的像素(就是说 当遍历到像素是背景像素时 不存到矩阵中)
好了 当初咱们曾经把它拿进去了 咱们要把操作矩阵 rgbs1 了
这一步是 怎么训练
步骤③ 操作:
把待匀色区域造成的矩阵 rgbs1 和 rgbt 依照上述(1)进行 缩放旋转平移
而后就失去后果矩阵 I
怎么放回去
步骤④ 咱们失去矩阵 I 当前 把 I 的三行对应 RGB 三个重量进行填充
比方 I 的第一行 填到 R 重量中 第一行第一个元素填到 R 重量第一列的第一个非背景像素上,而后第一列填充完当前,持续从第二列的第一个非背景像素开始填充 始终到最初一列
I 的第二行和第三行都是如此
so 很简略的就把 任意前景区域图像进行色调解决了
次要思维就是 拿进去 再放回去
看下色彩转移的成果:
把右边的匀成左边的
把亮的匀成暗的