码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)


    [论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)

    文章: The Linear Monge-Kantorovitch Linear Colour Mapping for Example-Based Colour Transfer, [paper], [matlab代码]

    1-算法原理

    本文将颜色迁移变成数据分布的转换问题, 因而本文需要解决2个方面的问题, 如何描述图像颜色分布, 二是如何对数据分布进行变换.

    对于数据分布, 本文使用均值和协方差来对数据分布进行描述, 对于分布变换, 本文使用线性变换进行处理.

    数据的均值和协方差比较简单, 因而本文的重点在于寻找变换方法. 本文使用的线性变换如下所示:

    {t(u)=T(u−μu)+μvTΣuTT=Σv
    {t(u)=T(u−μu)+μvTΣuTT=Σv(5)

    式中, u 为原始图像, v 为目标图像, μ 为均值, Σ 为协方差, T 为需要求解的线性变换.

    让 Σu=AAT , Σv=BBT, 则

    T(AAT)TT=BBT(TA)(TA)T=BBTTA=BT=BA−1

    只要知道了A和B即可知道线性变换T.

    2-算法核心

    本文的核心就是寻找A和B. 文中主要使用的方法是矩阵分解, 介绍了几种方法.

    2.1-Independent Transfer(IT)

    首先介绍的是每个通道单独进行转换时, 协方差变成了对角矩阵, 对角元素为每个通道的方差的平方根, 这样变换公式为:

    T=(√var(v1)var(u1)00⋱√var(vN)var(uN))

    这种变换方式可以使用如下公式等价, 即为 Color transfer between images 中描述的方法

    Ci=σitσis(Cis−μis)+μit

    式中, i为通道, s表示源图像, t表示目标图像. 这种方法需要假设图像各颜色通道分布是独立可分离的, 但实际情况可能不满足这种情况, 因而实际效果可能不好. 需要先将图像转换到不相关的颜色空间, 一般在Lab颜色空间效果较好.

    rgb和lab空间结果比较

    上图中, 依次为原始图像, 参考图像, rgb空间结果, lab空间结果.

    2.2-Cholesky Decomposition(CD)

    关于 Cholesky Decomposition 可以参考:

    1. 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用_大饼博士X的博客-CSDN博客_cholesky分解法求解线性方程组
    2. Cholesky分解 - 知乎 (zhihu.com)

    Cholesky Decomposition 可以将矩阵分解为 A=LLT 形式, 这样变换公式为:

    T=LvL−1u

    文中说这种方法对于通道的顺序有一定的要求, 不同的颜色通道顺序结果不一样, 如RGB与BGR的结果很有可能不一样.

    rgb和bgr结果比较

    上图中, 依次为原始图像, 参考图像, rgb结果, bgr空间结果.

    2.3-Square Root Decomposition(SRD)

    这种方法是对 Cholesky Decomposition 方法的一种改进, 分解公式为:

    Σu=PTuDuPu,Σ1/2u=PTuD1/2uPuΣv=PTvDvPv,Σ1/2v=PTvD1/2vPv

    这样变换公式为:

    T=Σ1/2vΣ−1/2u

    Square Root Decomposition 分解后, D为特征值的对角矩阵, 特征值从大到小排列, 可以实现主方向对齐, 类似PCA处理, 可以减少对颜色通道顺序的依赖, 这样在不同的颜色空间下结果类似.

    这种矩阵分解的方法可能的问题是, 局部出现颜色变化不一致的问题, 应该是与 [论文阅读] 颜色迁移-Correlated Color Space 中描述的问题一样.

    SRD结果

    上图中, 依次为原始图像, 参考图像, SRD结果.

    2.4-Linear Monge-Kantorovitch(MKL)

    将分布变换的问题转换为最优传输的问题, 关于 Monge-Kantorovitch 可以参考: 最优传输--Monge-Kantorovich理论_asforking的博客-CSDN博客

    这样变换公式为:

    T=Σ−1/2u(Σ1/2uΣvΣ1/2u)Σ−1/2u

    这个算法在 Square Root Decomposition 基础上进一步进行了改进, 对变换进一步约束了位移, 这样可以最小化颜色的变化.

    regrain结果
    上图中, 依次为原始图像, 参考图像, regrain结果.

    3-参考

    1. The Linear Monge-Kantorovitch Linear Colour Mapping for Example-Based Colour Transfer 论文理解_玉兔金兔的博客-CSDN博客
  • 相关阅读:
    vscode搭建Verilog HDL开发环境
    C++hello world出门遇到坑
    Hadoop的基本框架
    mybatis与spring集成
    RPA是什么意思?RPA机器人很厉害吗?
    日志、logback、logback.xml --java学习笔记
    windows远程linux主机
    质因数个数,蓝桥杯研究生Python组
    华为OD机试真题 Java 实现【矩阵中非1的元素个数】【2023 B卷 200分】,附详细解题思路
    四川翌加:横拍和竖拍抖音短视频哪个更好
  • 原文地址:https://www.cnblogs.com/yfor1008/p/16864945.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号