上周三晚上十一点,我还在跟一根头发较劲。
朋友开花店,要印一批卡片,发来一张她自己站在灰墙前的照片,要求把背景换成米白 #F5EFE6。原图我看了下,索尼A7M3拍的,2000×3000px,ISO 400,黑发,背景是刷过涂料的浅灰墙,光比很平。我当时觉得这活儿撑死十分钟,结果我抠到凌晨一点半才勉强收工。第二天我不服气,把网上流传的几种抠头发方法用同一张图挨个跑了一遍,记了时间和参数,才有了下面这些东西。
先说一句,这五种方法里,能真正用在这张图上的只有两种半。剩下的不是没用,是用错了地方。
方法一:选择主体,三秒钟的快乐
Photoshop CC 19.1,也就是2018年1月那个版本,加了“选择主体”这个按钮,在选择工具的状态栏上,点一下自动出选区。我实测大概三秒出结果,但耳朵后面那撮碎发直接没了,被算法糊成一个硬色块,额头前面几根飞发也被吃掉。
这个功能适合什么?适合背景干净、头发贴着头皮、最后要缩到微信头像那种小尺寸的图。你要是想放大到A3打印,头发边缘会像贴了张剪纸。
补救办法也有,选中之后点“选择并遮住”,把边缘检测半径拉到3px左右,能找回一点点发丝。但找回的是“看起来像发丝”的东西,不是真的发丝。
方法二:选择并遮住,参数才是关键
很多人不知道“选择并遮住”以前叫“调整边缘”,CC 2018版才改的名,功能一模一样,只是UI换了。它的核心就三个滑块:边缘检测半径、移动边缘、净化颜色。
我的参数是:半径2.5px,移动边缘-15%,净化颜色60%。净化颜色这一项,0的时候边缘有一圈白灰,拉到60%左右白边基本消失,但你要是贪心拉到100%,发丝会变成一团发灰的糊状物。它是用邻近颜色去替换边缘像素,拉太狠就把头发的层次也替换掉了。
输出那里有个选项一定要选“新建带有图层蒙版的图层”,别选“新建图层”。选错的话你就得到一个硬边选区,想回头改都没法改。
这个方法是我这五种里性价比最高的,但前提是你得先给它一个大概的选区。你直接框个矩形往里灌,它认不出来。
方法三:通道抠图,我在它身上花的时间最多
通道抠图的本质其实很朴素:你在手动造一个Alpha通道,也就是告诉软件“这个像素有多少透明”。
步骤我写一下,网上版本很多,我说我自己在用的。打开通道面板,把红绿蓝三个通道挨个点一遍,看哪个里面头发最黑、背景最白。这个没有规律,每张图都不一样,跟光源颜色和肤色都有关系,别信“永远用蓝通道”这种说法。复制那个通道,Ctrl+L调色阶,黑场往右拉到头发刚变黑的位置,白场往左拉到背景刚变白的位置,中间那个灰滑块微调。然后按Ctrl,Mac是Cmd,点这个通道的缩略图载入选区,回图层面板加蒙版。
难点在这儿:这张图背景是浅灰,黑发,明度差不多,色阶怎么拉,中间都是灰的,出来的发丝是断的,一缕一缕像被虫啃过。我耗时四分二十秒,是所有方法里最慢的,效果在低对比度图上也不理想。
但是在深色背景配浅色头发,或者反过来的强对比图上,通道法依然是天花板。它不“智能”,所以也不会自作聪明。
方法四:钢笔工具,别拿它抠头发
钢笔是个好工具,但拿它抠头发就是让它去做它做不到的事。
我试的时候勾了三分钟,出现了一个很尴尬的情况——头发丝在画面里只有几个像素宽,你根本没法用贝塞尔曲线去贴合它,锚点只会比发丝还粗。所以我现在只在一种情况下用钢笔:肩膀、衣服领子这类边缘清晰的地方,先钢笔画主体轮廓,然后再单独处理头发那块。
混合用法比死磕一种工具实在得多。
方法五:AI一键抠图,会给你补一圈光
网页版和插件我都试了,一共四个,其中两个超过3000px就要付费。优点是快,十秒出结果,发丝数量看着挺多。
缺点是它会给你补一圈发光。算法在“猜”那里原本是什么,猜出来的东西带一点光晕,缩到手机上看不出来,一放到100%就很明显。而且这四个工具里有两个,把头发和背景交界处的灰色像素直接判成了半透明,放到深色背景上会有一层灰雾。
我真正的观点:七成问题出在拍摄上
写到这我得说个可能不太好听的结论。抠头发抠不好,一大半不是工具栏的问题,是原图本身的问题。
像素是有物理极限的。我这张2000px宽的图,一根头发丝大概占1.5到3个像素,而发丝本身是半透明的——一个像素里可能混了30%的头发和70%的背景色。这时候任何算法都只能猜,猜就有对有错。你拿这张图去问任何一个修图师,他给你的也不会是百分之百无损的结果,最多是“看不出来”。
我后来做了件简单的事:让朋友重拍了一张,背后挂一块深灰绒布,再加一盏从后面斜打过来的台灯做轮廓光。同样的方法再来一遍,通道法两分钟收工,边缘干净得我自己都愣了一下。
所以如果你能重拍,拍的时候就把背景颜色和头发拉开明度差,这一条比学十个抠图技巧都值。如果不能重拍,那就接受“看起来没问题”这个标准,别追求像素级的完美,那不存在。
我现在用的组合流程
最后把我固定的流程写一下,参数都在上面,直接抄:
- 先看通道,找到头发和背景明度差最大的那个,能救就用通道法打个底
- 明度差小的,退回用“选择并遮住”,半径2.5px、移动边缘-15%、净化颜色60%
- 边缘清晰的身体和衣服部分,钢笔单独勾
- 蒙版建好之后,用硬度0%、不透明度30%的画笔在蒙版上手动补发丝,这一步没法自动化,但它决定了成片是“能看”还是“能用”
- 最后在纯白和纯黑背景上各看一遍,白底下看灰边,黑底下看白边,两个都过了才算完
整个过程我熟练之后大概八到十分钟,比凌晨那次强多了,但也没快到哪去。抠图这事就没有“一键”,所谓的一键,只是把麻烦推到了你没注意看的地方。