原文出处http://blog.sina.com.cn/s/blog_5cebe9cf0100nfea.html
在开始之前先确定数值以及符号约定
默认的图像空间是:RGB空间
使用和Shake一样的float表示颜色数值,颜色范围从 [0-1] 0:表示纯白 1:表示纯黑,0.5表示50%灰。
红色使用
R 表示 红通道
G 表示 绿通道
B 表示 蓝通道
使用Apple Shake作为试验软件。
一.
什么是Mattes:
Mattes 控制其他图像透明与不透明的图像。Mattes通常是只包含一个通道,是一幅黑白图像,通常黑色的区域代表完全透明,而白色区域代表完全不透明,而灰色区域表示着半透明。
数字合成中的一个重要的操作就是从一幅图像中提取所要的前景,让它与背景分离起来,这个过程就叫做提取Mattes,也叫做Keying,也就是我们所说的抠像。
抠像的方法有很多种,实际上每种合成软件中都提供了很多商业插件,而我们这里要描述的不是这些商业的插件的使用方法,而且数字合成中的一些基本基础知识和基本抠像手段,以及这些抠像手段的原理及应用。
选择那种抠像手段要取决于你的素材,而且拍的摄素材对前期的拍摄有一些要求,所以在抠像之前先要对素材进行分析。分析它的亮度范围,分析它的色彩,分析它的遮挡关系,分析它的拍摄设备(电影胶片摄影机器,广播Dv摄影机等),分析要提取的范围以及背景等,通常一种抠像手段是很难达到要求的,这时候就需要多种手段并用,达到最终目的,但是在应用之前首先要了解这些基本手段的原理,这样才能够灵活的使用它们,这也是本文所要达到的目的。
如果使用技术手段无法达到要求的时候,可以使用手绘Mask的方式进行手工提取,如果对于动态的序列帧,那么就要对每一帧进行Mask动画,但是这些工作量是非常大的,可以使用软件抠像得到“大约”Matte,结合手绘Mask,就能减轻工作量。
为了更好的进行后期的抠像,在前期拍摄的时候,为了更好的提取所要的区域,通常使用蓝屏或者绿屏做为背景,为什么选用蓝屏或者绿屏呢?这有很多的解释,大家可以看使用通道操作进行抠像的部分可以有所了解。
下面我们讲介绍几种抠像基础方法:
二.
亮度抠像主要是基于图像的暗部和亮部来创建Matte的。
工作原理:
首先把一幅含有RGB通道的图像转换为单通道的黑白图像,这幅黑白图像就代表着这幅图像的亮部和暗部区域。下面将设置两个数值lowValue,hightValue,只要黑白图像的数值大于hightValue,那么将会把这个数值设置为纯白色,如果小于lowValue就设置为纯黑色。下图形象化的展示了上面文字。
三维的山峰表示了黑白图像的亮度分布范围,山峰高出的区域代表图像像素的亮度越高。
使用2图的一个切割刀,可以对原来的图像的亮度区域进行修改。
通过对黑白图像亮度区域进行操作,可以得到Matte,通常这个不会那么的完美,然后对这个使用图像亮度得到的Matte进行二次处理,或者和其他方法生成的Matte进行合成,就能够生成想要的Matte.
1.
亮度方程
L (亮度)= 0.29*R+0.59*G+0.12*B
使用Shake ColorX节点,实现公式。
解释:使用ColorX节点可以对RGBAZ通道进行表达式控制。
表示使用29%的红加上59%的绿加上12%的蓝构成一幅黑白图像,
因为眼睛对绿色比较敏感,所以绿色所占的比重要高于其他色成分。
提示:如果想对亮度黑白图像进行更加多的控制,可以使用Shake-〉Color-〉Lookup节点,可以用曲线调节整幅图像,如果想实现Expand的效果必须同时对RGB曲线同时进行调节。
三.
理解RGB三维空间:
大家在初中时候刚学习初等几何时候,接触过坐标系的概念,方便的把代数问题可视化,方便分析问题,普通的立体空间坐标系,一般用xyz来表示,横,竖,纵三个方向,如果使用像素的RGB数值来表示三个向量方向,就可以组成一个新的坐标系,这个坐标系通常称为RGB空间,因为RGB数值可以在显示器上表示颜色,这样把整个RGB空间使用颜色像素完全填充,下图就是显示结果。可以看到一个立方体,实际上还有很多颜色空间。比如大家比较熟悉的hsv。
下图就是hsv空间,可以看到一个类似锥体的立体模型,不同形状说明他们轴向实现的方程是不一样的。
如果把一幅使用RGB表示的图像放入这个空间中,就可以通过这个坐标系来观察和分析整幅图像的红绿蓝颜色分布了,因为引入了立体坐标系,所以可以使用研究立体几何的方法来研究和处理图像了。这里将介绍Chroma-Key的一些原理,其中很多的概念和思路,大家可以借鉴一下,或者说发展一下,特别是对以后学习3D抠象有一个更加好的基础。
一幅图像在rgb空间的分布
点距离公式:
在高中时候肯定都学过两点在2d和3d坐标系中的距离公式,我们把它应用在我们的RGB空间中。
RGB 空间中两点之间距离公式:
考虑一下P1,P2这两个像素点,如果这两个像素颜色接近,也就是他们的RGB数值接近,那么D就会接近零,反映在颜色上就是接近黑色,如果两个像素点的颜色差异很大,也就是
RGB 数值之间差比较大,那么D就会很大,因为我们实现约定了,RGB范围在0-1之间,所以,最大距离如果大于1,那么就显示为白色,如果小于0,将显示为黑色。
我们在拍摄时候蓝屏,或者绿屏目的就是为了使前景和背景差异很大,所以上面的这个公式就能够帮助我们生成一张距离图。因为距离是单一浮点数,所以产生的这张图是单通道黑白的。
一张Distance map.
这张图片假设公式中,P1点在前景,P2点是背景蓝色的一张单一颜色图像,对这两张图片求距离得到的。女孩后面的黑色说明蓝布与我们要提出的颜色相近,所以距离接近黑色,女孩身上很少的蓝色,所以距离就接近白色,我们可以惊奇的发现,可以使用任何一种颜色作为比较色来提取这样的距离图。
有这样一个“大约“Matte,我们可以对这个图像进行调色处理,比如增加对比度,可以绘制遮罩等进行处理。
理解了上面的一些以后,关于Chroma-Key的一些解释就很好理解了。
Chroma-Key 顾名思义就是通过色调来提取Matte,上面我们说过,如果我们预先对我们的图像进行调色处理,对于想要的像素,加大他与不想要的像素颜色之间的距离,对于不想要的像素,减小与不想要像素的颜色之间的距离,就可以达到提取matte的目的。
Chroma-Key 是首先把图像转换到HSV空间,然后对整幅图像进行调节,调节它的色调的偏移,范围,饱和度偏移,范围等,来达到上述目的。在Shake
下图就是HueCurves节点的参数区。
下面我们把上面的理论总结一下,在shake中实现我们调节功能更加强大的MyChroma-Key。
这里的ContrastLum是对图像进行对比度处理,可以在此段区域内,对Distance Map进行调色处理,使用HueCurves进行调节时候,比如可以降低bHue的红色范围数值,因为前景女孩穿的是含红量高的衣服,比如可以增加rHue的红色范围数值,让女孩前景的颜色更加远离背景。
这也是很多商业抠象软件的基本原理,因为抠象实际是把分布在RGB空间中的一些部分给剔除掉的过程,比如Infeno中就使用三维来显示一幅图像分布,中间的三维物体表示剔出的区域,这样对这个三维物体进行参数调节或者“建模“处理,就可以得到想要的matte。
大家可以按照这个思路,使用立体几何的公式或者概念,加上Shake提供的方便的表达式节点,可以试验出更加有意思的抠象或者调色技术.