上周三晚上十一点多,一个做童装的朋友甩过来一张图,说「帮我抠一下,明早要上架」。图很普通,白底棚拍,主体是件鹅黄色卫衣。我 选择 > 主体 一点,看上去挺完美,导出 PNG 换到浅灰背景(#F2F2F2)上——边缘一圈细细的白毛,像冬天哈气结的霜。原背景是纯白 #FFFFFF,就这点灰度差,白边全露馅了。
这事我后来反复琢磨。网上讲抠图白边的教程一抓一大把,标题都写「一招解决」,你真照着做,十有八九还是留边。原因很简单:大部分教程默认了两件事——背景干净、主体边缘是硬的。现实里这两条基本都不成立。那件卫衣的袖口是针织的,边缘是一圈半透明的绒毛和白色背景混在一起的像素,任何基于颜色边界判断的算法,都只能告诉你「大概在这附近」。
白边的本质:不是锯齿,是半透明的边缘像素
数字图像里物体边缘不是一刀切的。一个像素要么 100% 是主体,要么 100% 是背景,中间那圈像素是两者按比例混出来的。白色背景混出来的就是偏白。你把主体抠出来放到浅灰背景上,这圈像素还是白的,看起来就像描了一圈边。分辨率越高、镜头越好,这圈半透明像素越细腻,白边反而越「明显」,因为它是一整圈连续的。所以在 2000 万像素的原图上抠图,比在 800 万像素上更难糊弄。我试过把一张 6000×4000 的图先降到 2400×1600 再抠,白边在屏幕上肉眼几乎看不出来,代价是细节没了——这是应急手段,不是正经做法。
我拿 12 张实拍图试了 7 种方法,能看的只有 2 种
不是理论推演,是真的坐在那儿一张张抠过去的。测试素材包括:3 双球鞋、2 个玻璃杯、1 个包装盒、4 张人像(长发、卷发、碎发各不同)、2 条纱质围巾。
| 方法 | 关键参数 | 硬边产品 | 毛发/织物边缘 |
|---|---|---|---|
| 选择主体后直接删背景 | 默认 | 白边明显 | 惨不忍睹 |
| 魔棒 + 羽化 | 容差 32,羽化 0.5px | 残留细细白边 | 不能用 |
| 通道抠图 | 蓝通道 + 色阶 90/1.0/180 | 可用 | 可用,最干净 |
| 选择并遮住 | 移动边缘 -18%,净化颜色 55% | 可用 | 可用 |
| 蒙版 + 最小值 | 半径 1px | 很干净,轮廓缩 1px | 不能用 |
| 图层 > 修边 > 去边 | 宽度 1px | 有效 | 基本无效 |
| AI 生成式填充 | 无参数可调 | 看运气 | 看运气 |
最后一行可能有人不爱听。生成式填充在背景复杂的时候确实省事,但它的输出不可控,同一个选区跑三次给你三个结果,电商这种要统一风格的场景,我基本不用。
能落地的两条路:参数写死
路径 A:硬边产品(鞋、杯子、包装盒)——蒙版最小值 + 去边
- 用
选择 > 主体或者钢笔工具,先拿到一个大致选区,差一点没关系。 - 点图层面板底部的「添加图层蒙版」,别直接删背景,删了就没退路。
- 点一下蒙版缩略图(必须是选中蒙版,不然滤镜作用在图像上),
滤镜 > 其他 > 最小值,半径 1 像素,「保留」选圆度。这一步会把蒙版整体收缩 1px,白边正好被吃掉。 - 回到图层,
图层 > 修边 > 去边,宽度填 1px。 - 放大到 200% 检查。还有残留就只对局部用硬度 0%、不透明度 60% 的白色画笔在蒙版上补——千万别整体再跑一次 1px 最小值,轮廓会像被啃过。
路径 B:毛发、纱、毛绒玩具——选择并遮住
选择 > 选择并遮住(Alt+Ctrl+R),右侧参数我一般这么给:视图切「黑白」,不透明度 100%,这样才看得清半透明区域;边缘检测半径 2.0–4.0px,勾上智能半径;全局调整里平滑 3、羽化 0.3、对比度 15%;移动边缘 -15% 到 -22%;输出设置勾「净化颜色」,数量 55% 左右;输出到「新建带有图层蒙版的图层」。
这里有个很多人踩的坑:移动边缘拉到 -30% 甚至 -40%。不少教程这么教。实测下来 -30% 会直接啃掉发丝,把一头头发变成一顶假发套。这个参数的本质是整体收缩选区边界,它不是「变聪明」,是「变窄」。头发这种丝状结构,一收缩就断。我一般 -18%,最多 -22%,宁可留点白边后面用画笔在蒙版上修。
还有个更隐蔽的:如果你的文档是 32 位/通道(比如从 EXR 拉进来的),「净化颜色」会整个灰掉点不动。我有次折腾了二十分钟才发现是位深的问题,切回 8 位或 16 位就亮了。
三个很少有人讲、但实际很要命的点
第一,导出环节。 文件 > 导出 > 导出为,格式选 PNG,勾「透明度」,注意别碰「杂边」那类选项。旧版「存储为 Web 所用格式」里有个杂边颜色,默认白色,勾上等于你手动描了一圈白边。这坑我踩过,同一张图在两个版本里导出来效果不一样,找了两小时。
第二,新背景的亮度。 白边之所以叫白边,是因为它比新背景亮。如果新背景比原来的白背景还亮,白边就不见了——不是消失了,是被藏起来了,换个场景又冒出来。所以我处理完一定会把主体放到深色背景上再看一眼,深色背景是白边放大器。
第三,与其抠得完美,不如让边缘「接上地气」。 我的做法是复制主体图层,填充一个从边缘取样的颜色,不透明度 25%,或者干脆加 1px 内阴影,做一个柔边垫在下面。花 30 秒,但对「看起来像是拍在背景上」这件事,效果比再抠十分钟大。抠图的目标从来不是边缘干净,而是看不出接缝。这俩不是一回事。
我现在的实际流程
背景均匀(棚拍白底、绿幕)→ 通道抠图,翻红绿蓝三个通道挑对比度最高的那个(多数情况是蓝通道),色阶压到 90/1.0/180,载入选区,加蒙版,再补一个 最小值 1px,两分钟出图。
背景杂乱(街拍、实景)→ 选择并遮住,参数按上面那套走,输出带蒙版的图层,然后硬度 0% 的柔边画笔慢慢补发丝,这种图十分钟起步,别信什么一键。
最后一句不太讨喜的话:能重拍就重拍。花两百块买块中灰背景布,拍摄时让主体离背景 1.5 米以上,后期成本能降一大截。我见过太多人花三个小时抠一张本来可以在拍摄环节解决的图——包括我自己,前几年干过好几次。