大致思路是首先利用node.sample()自带采样功能对整个画面逐像素采 样,我把采样函数写的比较灵活,可以定义一个采样族,即把整个画面分成若干块,逐块采样,很大程度上减少了采样工作量,但相对精度会有所降低。考虑到单幅 画面包含RGBA四个分量,所以对一个画面我会分别采样四次。对参考图片采样完毕之后还需要对目标图片进行采样,所以总计需要采样八次,这是一个不小的计 算量。

采样完毕后会产生大量数据,我找了很多工具包来尝试管理这些数据,最终选择numpy,这个工具包简单易用,array数组或matrix矩阵的数据储存方式跟采样画面能够建立一个非常直观的对应关系。
numpy更是一个非常强大的数据分析工具,可以很高效的获得所需信息。通过numpy,可以计算得到当前采样画面的最大值最小值,数值分布直方图等。
获得两张图片的相关信息后就需要考虑提出一个可行的算法来进行匹配了。
我 的第一个思路是直方图匹配,这是老生常谈,我的算法稍有不同,我只匹配两幅直方图中的波峰,只要两张图片的RGB三通道的波峰能匹配一致,就大功告成,但 实际匹配过程中直方图的拟合又出现了很多问题,最终我只能采取近似的方式去进行,最终结果并没有理想的那么精确,而却遇到画面亮暗部过渡均匀的情况更难捕 捉波峰,精度下滑很严重。要提出一个新的算法又要考虑时间成本,最终我采用了折衷的方案,即出一个工具包,内部有两个节点,一个用于自动匹色,一个在采样 基础上提供手动匹色功能。至于直方图匹配过程需要调整的数值如何映射到nuke中的gain值gamma值blackpoint值whitepoint值 上,这其实都是有公式的,网上查一查就可以了。

Nuke的色彩匹配节点思路的更多相关文章

  1. 转:zTree树控件扩展篇:巧用zTree控件实现文本框输入关键词自动模糊查找zTree树节点实现模糊匹配下拉选择效果

    是否可以借助于zTree实现文本框输入关键词自动模糊匹配zTree下拉树,然后选择下拉树内节点显示在文本框内且隐藏下拉树. 看到这个需求脑子里头大致已经想到了要如何实现这样一个需求,当时是限于时间问题 ...

  2. 【剑指offer】部分思路整理

    题目 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去 ...

  3. HDU 2426 Interesting Housing Problem(二分图最佳匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=2426 题意:每n个学生和m个房间,现在要为每个学生安排一个房间居住,每个学生对于一些房间有一些满意度,如果满意度 ...

  4. Node节点

    1.Node:节点元素节点->HTML标签文本节点->文字 但是在标准浏览器(除了IE6~8)中会把空格和换行都当做文本节点来处理注释节点->注释document2.节点的特征元素节 ...

  5. XML通过XSL格式化的那点事(XML到自定义节点折叠显示)

    引言 有时我们想看下系统生成的XML文件(如XML格式的Project文件),如果文件结构简单,我们浏览器看起来还比较方便,但是随着XML schema复杂后就变得让人头疼啦,单独写一个程序去做展现又 ...

  6. 使用jQuery的Scrollify插件实现鼠标滚轮或者手势滑动到页面下一节点部分

    有时我们需要做一个单页面介绍产品特性,而单页面内容非常多且页面非常长,为了快速定位到产品特性节点,我们使用js侦听用户滚轮事件,当用户触发滚轮滑动或者使用手势触屏滑动时,即可定位到相应的节点.一款jQ ...

  7. Java/Js下使用正则表达式匹配嵌套Html标签

    转自:http://www.jb51.net/article/24422.htm 以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里 ...

  8. 使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)

    getElementById(id)这是通过id来访问某一元素,最常用的之一,例:<html><body><div id="myid">test ...

  9. URAL 1076 Trash Trash(最大权匹配)

    Trash Time limit: 1.0 secondMemory limit: 64 MB You were just hired as CEO of the local junkyard.One ...

随机推荐

  1. Netty核心概念

    一个Netty程序始于Bootstrap类,Bootstrap类是Netty提供的一个可以通过简单配置来设置或“引导”程序的一个重要的类.Netty中设计了Handlers来处理特定的"ev ...

  2. NEO VM原理及其实现(转载)

    NEO Vm原理及其实现 简介及与evm主要区别 neo vm和evm类似.底层都实现了一套opcode以及对应的执行器,opcode设计差距蛮大的,总体上来说evm的更加简洁,neo vm的功能更加 ...

  3. 【转载】 PyTorch学习之六个学习率调整策略

    原文地址: https://blog.csdn.net/shanglianlm/article/details/85143614 ----------------------------------- ...

  4. Linux按照时间顺序列出文件

    按照递增时间顺序列出所有文件 ls -ltr -l表示列出长串数据,-t表示按照时间顺序,-r表示将排序的结果反向输出 按照时间递减的顺序列出所有文件 ls -lt

  5. ZOJ - 4089 :Little Sub and Isomorphism Sequences (同构 set)

    Little Sub has a sequence . Now he has a problem for you. Two sequences of length and of length are ...

  6. xdoj-1324 (区间离散化-线段树求区间最值)

    思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间 2 核心:dp[i]  覆盖从1到i区间的最小花费 dp[a[i].r]=min (dp[k])+a[i]s; ...

  7. win10 ubuntu 同一硬盘双系统安装和启动设置

    1.了解启动的顺序 电脑开机--->  BIOS 设置 ----> 硬盘(MBR)/ GPT格式里的ESP分区 --->  (UEFI/GRUB)目录里的 *****.efi  -- ...

  8. Mysql的两种引擎

    Innodb引擎: 1.Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别 2.该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于 ...

  9. linux入门001--帮助支持

    linux入门001--帮助支持====1. 帮助手册提供命令的使用说明:man ls提供基础知识和参考信息,有时会有实例和交叉索引,但是基本没有教程式的文档.就是说,并不会有偏重告诉你那个重要,那个 ...

  10. tomcat 9.0中,用cookie进行会话时出现的不合法字符问题

    https://blog.csdn.net/KooKing_L/article/details/77435717 An invalid character [32] was present in th ...