mlq color transfer: Color Transfer Using Probabilistic Moving Least Squares

news2024/12/23 22:19:00

文章目录

  • Color Transfer Using Probabilistic Moving Least Squares
    • 1. 颜色转换
    • 2. 如何计算匹配点的概率
    • 3. 核心思想和具体操作:
    • 4. 特征点覆盖不到的颜色
      • 4.1这里介绍一下引文7:
      • 4.2. 分析
    • 5. Probabilistic Moving Least Squares with Spatial Constraints for Nonlinear Color Transfer Between Images
    • 6. 结果:

Color Transfer Using Probabilistic Moving Least Squares

1. 颜色转换

适用场景,配准后的图像有 密集的数量足够多的颜色匹配对。配准可以允许有一定的错误。

mlq这里不再多说,相比与mlq这篇文章主要考虑到匹配是否正确,

假如有很多匹配点,怎么知道一个匹配是否正确。是否可以计算该匹配点正确的概率。
下图p_k就是匹配点的概率。将概率与w融合:得到新的weight

在这里插入图片描述

在这里插入图片描述

2. 如何计算匹配点的概率

1) 首先将rgb域用3Dlut 表示,比如 17 ∗ 17 ∗ 17 的 3 D l u t ( 17 ∗ 17 ∗ 17 = 2197 ) 17*17*17的3Dlut (17*17*17=2197) 1717173Dlut(171717=2197)
2) 那么匹配的颜色落在对应格子的数量 和 总的匹配数量,可以表示为该匹配(i和j匹配)的 概率:
在这里插入图片描述

注意这里的i,j表示的grid index, 是 2197个格子之一。

其实第i个格子可能匹配到很多j, 第j个格子也可能匹配到很多i。

那么具体 i匹配j的概率是多少呢?用 2197 ∗ 2197 2197*2197 21972197 的M邻接矩阵来表示,任意两个格匹配的概率。

在这里插入图片描述

i 匹配为j的条件概率和 j 到i的条件概率:
在这里插入图片描述

最终的矩阵就是:
在这里插入图片描述

那么每个匹配的概率就可以查找最近的格子得到。

3. 核心思想和具体操作:

先配准,求概率

在这里插入图片描述

4. 特征点覆盖不到的颜色

用mlq效果不好,因为mlq本质是一个内插函数,外推效果不好。因此作者使用
[7] A. Ilie and G. Welch. Ensuring color consistency across multiple cameras. In ICCV, pages 1268–1275, 2005. 2, 5, 7
中的多项式插值函数,拟合出 空的grid (i)的对应的grid (j)。 利用已知的匹配点对。

4.1这里介绍一下引文7:

引文7主要介绍了一个标定方法:
标定的图像如下:左图包含了亮度变化,右图是常见的颜色。
在这里插入图片描述

标定方法是利用最小二乘求解 ccm, 或者利用文中提到的软件。
在这里插入图片描述

因此求出ccm后,每个颜色都可以找到对应的点 ,因此 可以填充3Dlut.

4.2. 分析

利用mlq, 但是又利用 多项式拟合, 那么多项式拟合之后 其实稍微优化一下就得到了3Dlut. 本身多项式拟合也是一种颜色转换。

5. Probabilistic Moving Least Squares with Spatial Constraints for Nonlinear Color Transfer Between Images

主要改进就是引入 空间域, local 域

在这里插入图片描述

在这里插入图片描述

P是空间位置的距离。

6. 结果:

mls
pmls
b-pmls
b-pmls with extend
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络) 目录 智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)预测效果基本介绍程序设计参考资料预测效果 基本介绍 MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络…

如何通过Bug跟踪管理,有效减少软件缺陷Bug?

1、Bug生命周期 Bug的生命周期是指从Bug被发现到被关闭的过程。一般的缺陷状态是:新建--指派--已解决--待验--关闭。如果待验的Bug没有解决,我们需要重新激活--指派--已解决,循环这个过程,中间还包括拒绝、延期等。 Bug跟踪管理 减…

设计模式:创建者模式 - 代理模式

文章目录 1.概述2.结构3.静态代理4.JDK动态代理5.CGLIB动态代理6.三种代理的对比7.优缺点8.使用场景 1.概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象…

VUE3 学习笔记(八)引入 EasyUI for Vue

目录 一、什么是 EasyUI? 二、安装EasyUI for Vue3 1. 使用NPM安装 2. 导入EasyUI 三、安装完成出现问题解决 一、什么是 EasyUI? easyui是一个基于jQuery、Angular、Vue和React的用户界面组件的集合。easyui为构建现代的、交互式的、javascript应用程序提供了基本功能…

【历史上的今天】4 月 20 日:中国接入国际互联网;戴尔登顶 PC 市场;计算机先驱诞生日

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 20 日,在 2005 年的今天,CNET 网络公司宣布以 1100 万美元现金收购 PCHome 公司。根据当时的协议,PCHome 创始人将保留…

ManageEngine AD360:简化AD管理过程,提高组织安全性

Active Directory(AD)是微软提供的一种广泛使用的域管理工具,可以用于组织内部用户、计算机和其他资源的管理。尽管AD是一个强大的工具,但是它的管理不总是容易的,尤其是当需要处理大量的用户和计算机时,会…

linux下hive远程数据库模式安装

文章目录 前言1.安装mysql1)使用yum安装2) 安装好启动服务3) 开启开机自动启动4) 修改权限4) 登录 2.Hive安装 Local/Embedded Metastore Database (Derby)1) 下载稳定版本解压即可2)配置环境变量3) 配置远程连接mysql数据库4)需要将mysql驱动…

Flink时间属性

1.概述 Flink支持三种与流数据处理相关的时间概念:Processing Time、Event Time和Ingestion Time。具体如下图所示: 当前Flink仅支持Processing Time和Event Time EventTime:您提供的事件时间(通常是数据的最原始的创建时间&…

MongoDB 之 updateMany

MongoDB 之 updateMany 使用 https://www.mongodb.com/docs/v6.0/reference/operator/update/#update-operators db.collection.updateMany(<filter>,<update>,{upsert: <boolean>,writeConcern: <document>,collation: <document>,arrayFilters…

NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038

之前使用querydatabasetable处理器来获取mysql中的数据,我们只能写死一个sql的查询语句,但是 实际引用环境中,我们的一张mysql的表,可能有上千万的数据,那么,不可能,我们把sql查询语句写死,这样一次性如果获取所有数据,那么压力太大了,我们怎么弄呢?找了很久没有找到相关教程…

基于卷积神经网络的分类算法

基于卷积神经网络的分类算法 基于卷积神经网络的分类算法运行环境Python环境PyTorch环境Django环境数据预处理 基于卷积神经网络的分类算法 应用机器学习模型采用卷积神经网络&#xff0c;部署在Web环境中&#xff0c;通过Fashion-MNIST数据集进行模型训练和改进&#xff0c;实…

Scrum敏捷研发和项目管理

Scrum是全球运用最广泛的敏捷管理框架&#xff0c;Leangoo基于Scrum框架提供了一系列的流程和模板&#xff0c;可以帮助敏捷团队快速启动Scrum敏捷开发。 Leangoo完美支持Scrum敏捷框架&#xff0c;它提供了灵活的敏捷模板和极致的协作体验&#xff0c;可以让团队快速上手&am…

勒索病毒-特洛伊木马变种

​一、病毒简介 文件名称&#xff1a; 457d9e4773f45954449ee5913d068fdbb3d8e5689019688e7bce901467e5473a 文件类型(Magic)&#xff1a; PE32 executable (GUI) Intel 80386, for MS Windows, UPX compressed 文件大小&#xff1a; 410.00KB SHA256&#xff1a; 457d9e4773f…

从界面设计谈系统的贯穿性

系统的贯穿性&#xff1f; 在日常的开发中。单个模块之间的编码和设计起来相对比较简单。但是作为“软件工程”中的一个环节&#xff0c;系统的贯穿性往往被忽视。 现在系统关于贯穿性存在的问题 开发过程往往按照模块划分&#xff0c;分为不同的人开发。针对开发的者来说&…

【UE】将存档的值显示在控件蓝图上

上一篇博客&#xff08;【UE】保存游戏的demo&#xff09;已经实现了存档功能&#xff0c;本篇博客介绍的是如何将存档的值显示在控件蓝图上。 效果 可以看到我们存档的值显示在文本控件上 步骤 1. 新建一个蓝图类&#xff0c;父类为“HUD” 命名为“NewHudClassBP” 2. 在世…

Linux设备驱动开发 - 虚拟时钟Clock驱动示例

By: fulinux E-mail: fulinuxsina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅&#xff01; 你的喜欢就是我写作的动力&#xff01; 目录 1. 概述2. virtual clock设计3. 虚拟时钟驱动3.1. provider驱动3.1.1. provider platform device部分3.1.2. prov…

645. 错误的集合|||697. 数组的度|||448. 找到所有数组中消失的数字

645. 错误的集合 题目 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的…

JVM系列(七) JVM 垃圾收集器

我们知道JVM会回收垃圾,但是每种垃圾收集器的收集机制和收集的方法都不一样,今天我们讨论下几种垃圾回收机制 1.按照垃圾区域划分垃圾收集器 我们可以按照垃圾存在的区域来划分垃圾收集器,垃圾在堆内的区域分为 新生代垃圾老年代垃圾新生代老年代混合垃圾 按照这三种区域类…

一个Linux驱动工程师必知的内核模块知识

最简单的驱动 #include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h>static int __init my_init(void) {printk("my_init\n");return 0; }static void __exit my_exit(void) {printk("my_exit\n"); }module_in…

数据结构总结——Java

1 链表(Linked List) 1.1 单项链表(Singly Linked List) 1.1.1 图例 1.1.2 Java实现 public class ListNode {// 保存值int val;// 保存指针ListNode next;// 构造函数们public ListNode() {}public ListNode(int val) {this.val val;}public ListNode(int val, ListNode n…