[论文阅读] 颜色迁移-N维pdf迁移
[论文阅读] 颜色迁移-N维pdf迁移
文章: N-Dimensional Probability Density Function Transfer and its Application to Colour Transfer, [paper ][code]
1-算法原理
简单来说, 本文将图像看作是随机变量的一组样本, 图像之间的颜色迁移可以看作是样本之间分布的迁移. 因而本文的方法就是寻找样本分布之间的迁移方法.
如下图所示为文中给出的2d pdf迁移方法的示例.
具体的, 本文算法步骤如下所示:
下面就我个人理解进行说明下:
- 第一步是初始化, 可以看到, 本文是在rgb空间进行处理的, 且是使用迭代的方法, 因而处理过程中x是不断变化的
- 第二大步是算法核心, 算法迭代, 查找映射关系, 具体的
- 使用旋转矩阵R对样本x和y进行处理, 将其变换到新的坐标系, 对应上图中的步骤3
- 在新的坐标系, 对每个轴寻找1维的pdf映射, 对应上图中的步骤5
- 对图像进行映射, 得到当前步骤处理后的图像, 对应上图中的步骤6
- 处理完后, 映射回原始坐标系, 对应上图中的步骤7
- 重复步骤2-5, 得到最终的图像.
2-算法核心
本文的目的是N维pdf的迁移, 但对于高维的pdf迁移是比较困难的, 因而本文将其转换为1维的迁移. 因此本文有2个方面的问题需要解决: 一是1维pdf如何迁移; 二是如何转换为1维pdf.
2.1-1D pdf transfer
本文介绍了一种方法, 如下所示, Cx 和 Cy 分别为累积概率分布函数.
这种方法是 Digital Image Processing 书中的方法, 我觉得有点类似直方图均衡或者直方图规定化(直方图匹配).
代码中给出的实现是使用插值算法实现的, 作者给出的实现是使用matlab的, 其中PX为原始图像某个轴的累积概率分布, PY为目标图像某个轴的累积概率分布
f = interp1(PY, 0:nbins-1, PX, 'linear');
2.2-rotation matrix R
本文使用旋转矩阵R将原始样本变换到新的坐标系, 然后对新坐标系的每个轴进行1d transfer. 之所有要使用旋转矩阵, 个人以为的原因是(可能并不准确):
- 样本分布比较复杂, 原始坐标系(RGB空间)中的迁移不能实现准确的pdf匹配
- pdf的迁移存在大量非线性处理, 原始坐标系(RGB空间)可能不足以表达
- 原始坐标系变换, 拉伸幅度可能过大, 导致图像颜色异常, 变换到新的高维坐标系后, 每个轴的变化变小, 可以减少拉伸幅度
因而旋转矩阵R的选择比较关键, 文中测试了几种R的选择方法, 最后发现使用随机的方法, 效果最好, 如下所示:
旋转矩阵R的大小为 m*3, 根据文章中的说法, m越大pdf匹配越精确, 但速度也越慢. 代码中给出的实现使用m=6, 如下所示.
R{1} = [1 0 0; 0 1 0; 0 0 1; 2/3 2/3 -1/3; 2/3 -1/3 2/3; -1/3 2/3 2/3];
for i=2:nb_iterations
R{i} = R{1} * orth(randn(3,3));
end
这里没有看懂, 直接给R随机赋值不行吗?
3-算法效果
如下图所示为文章中给出的效果.
[论文阅读] 颜色迁移-N维pdf迁移的更多相关文章
- 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)
今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...
- 论文阅读:《Bag of Tricks for Efficient Text Classification》
论文阅读:<Bag of Tricks for Efficient Text Classification> 2018-04-25 11:22:29 卓寿杰_SoulJoy 阅读数 954 ...
- BERT 论文阅读笔记
BERT 论文阅读 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 由 @快刀切草莓君 ...
- 快速人体姿态估计:CVPR2019论文阅读
快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...
- Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读
Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...
- 深度学*点云语义分割:CVPR2019论文阅读
深度学*点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...
- 《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读
<Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shi ...
- 分布式多任务学习论文阅读(四):去偏lasso实现高效通信
1.难点-如何实现高效的通信 我们考虑下列的多任务优化问题: \[ \underset{\textbf{W}}{\min} \sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1 ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
随机推荐
- Docker/K8s 解决容器内时区不一致方案
转载自:https://cloud.tencent.com/developer/article/1433215 1.背景介绍 我们知道,使用 docker 容器启动服务后,如果使用默认 Centos ...
- 改变一个数组内元素的位置,不通过splice方法。
这个数据 现在已经完成了,将本来在第一位的18代金券改到第31位,下面说一下怎么实现的. //currHotRightsTypeSorted这个是数据源头,legalRightsType这个是数据的分 ...
- [题解] Codeforces Global Round 22 1738 A B C D E F 题解
很久没rated打过cf的比赛了,这次打得还行,至少进前100了 点我看题 A. Glory Addicts 把类型0的数放进数组a里,类型1的数放进数组b里.如果\(|a|=|b|\),你可以把所有 ...
- Codeforces Round #710 (Div. 3)
emmm,就ac了3题 A题转换推下公式. tB题模拟,在第一个与最后一个变x后,直接i下标+k,判断当前下标前一个befor与最后一个last距离是否>k,是的话在当前下标往前找*字符然后改为 ...
- <一>关于进程虚拟地址空间区域内存划分和布局
C++代码在编译完成后会生产.exe程序(windows平台), .EXE以文件的形式存储在磁盘上,当运行.exe程序的时候 操作系统会将磁盘上的.exe文件加载到内存中,那么在加载到内存中的时候,操 ...
- Redis高可用之主从复制原理演进分析
Redis高可用之主从复制原理演进分析 在很久之前写过一篇 Redis 主从复制原理的简略分析,基本是一个笔记类文章. 一.什么是主从复制 1.1 什么是主从复制 主从复制,从名字可以看出,至少需要 ...
- 安装 LAMP 环境(yum 版本) shell脚本
#!/bin/bash # 安装 LAMP 环境(yum 版本) # 本脚本适用于 RHEL7(RHEL6 中数据库为 mysql) yum makecache &>/dev/null ...
- Vue学习之--------Vue中收集表单数据(使用v-model 实现双向数据绑定、代码实现)(2022/7/18)
文章目录 1.Vue中实现表单数据的收集 1.1 基础知识 1.2 代码实例 1.3 测试效果 1.4 额外插一嘴 1.Vue中实现表单数据的收集 1.1 基础知识 表单中常用的标签:input(输入 ...
- vue-router路由实现页面的跳转
1.项目结构 2.定义组件 组件1 Login.vue <template> <form> 账号:<input type="text"> 密码: ...
- 频道插件如何对接圈子 齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10
圈子黄页里要显示对应频道的数据列表,一般没有特殊要求的话,不需要建立PHP文件, 只须要做好模板即可,比如 \template\index_style\default\qun\shop\index.h ...