什么叫“抠图”?顾名思义,所谓抠图就是从一幅图片中将某一部分截取出来,和另外的背景进行合成。不要小看这一工作,我们生活中的很多图像制品都曾经经过这种加工,例如广告等,需要设计人员将模特照片中的人像部分抠取出来,然后再和背景进行合成。事实上,抠图在您的生活中也大有用武之地,尤其是随着数码相机、扫描仪等设备的普及,越来越多的人开始乐于对自己手中的照片进行各种各样的“特殊处理”,譬如把自己的全身像抠取出来放到别的背景中,把恋人的单人照片进行抠图后与自己的照片合成双人照等等,都需要用到抠图。
在过去,人们往往使用套索工具进行抠图操作。作为Adobe公司的知名图形处理软件,PhotoShop可以对图形进行非常精确的处理,无论要抠取的图形有多复杂,也可以分毫不差地全部截取出来。但是,对于新手来说,PhotoShop的使用略嫌复杂,如果不经过一段时间的培训和练习,用户很难掌握操作的要领。为了将图片中的某一部分取出来,用户必须沿着对象的边缘“剪”一圈,如果图片本身有较多的棱角或者突起,工作的难度就会成倍增加。
与PhotoShop相比,Lazy Snapping的使用就要简单多了,对于绝大多数图形来说,只需要三步,就可以将我们需要的内容截取出来。
Lazy Snapping的基础:Graph Cut
Graph Cut技术是图论中的一个概念,也是Lazy snapping这款软件的核心技术。在软件的第一步和第二步操作中,对前景的轮廓计算和对细节部分进行修补的操作,都是基于该技术进行的。
首先,当一张图被导入到Lazy snapping中时,软件会自动采用一种被称为“水线(watershed)”的算法对该图进行处理。
所谓水线,通俗地说,就是把一张图像的梯度图想像成为一片凹凸不平的山地,其中,颜色变化小的区域就是山脊,而颜色变化剧烈的区域就是山洼。我们知道,每一个山洼周围必然都是一圈山脊,如果在每一个山洼的最低点打一个洞,然后通过这个洞向山洼里注水,则经过一段时间之后,相邻山洼里的水必然会越过山脊连接到一起。两个山洼之间的水连接在一起的这条线,就是水线。通过这些水线,软件就可以把图片分为大小不等的若干“碎片”。我们可以注意到,每一个区域中的颜色基本上都是相同的。
为什么要先对图片进行“水线”处理呢?因为我们知道,在计算机中,每一幅图都是由无数个像素点构成的,当软件需要分辨出图像的前景和背景时,就需要对图像中的所有像素点进行分析,这样一来工作量会成立方级数增加,大大减缓处理的速度。而采用了“水线”处理之后,图像中需要分析的就是那些被分割出的区域了,其数量比像素点要少数十倍,从而大大加快了软件的处理速度。
接下来,就该是用户需要做的工作了——通过划线,告诉计算机哪些是我们想要的前景,而哪些是我们不想要的背景。如果从像素点的角度来看,一旦我们在图像上画了一条线,则这条线经过的像素点被我们称为“种子点”,这些“种子点”所涉及到的区域,则被称为“种子区域”。接下来,我们就需要借助这些“种子区域”将图片分为“前景区域”和“背景区域”两大块。利用Graph Cut优化算法,图片上所有区域会被赋予惟一的属性,不属于“前景区域”就一定会属于“背景区域”。
上一篇:
photoshop荷花作品的后期处理方法
下一篇:
Google紧逼雅虎急寻外援 与名校建实验室