得益于先进的 HTML Canvas 指令,现代网页应用可以直接在您的浏览器里在两三毫秒内渲染完数十万像素的去底。这类一键除杂色的算法通常发源于“色度键抠像 (Chroma Keying)”。

1. RGB 颜色空间的三维几何距离

程序想要抠去一个特定的纯色背景,就必须准确断定每个像素“到底有多接近这个背景”。算法会在后台遍历整张图片的色彩数组,对每一个独立像素的红色(R)、绿色(G)、蓝色(B)通道与指定的过滤对比色进行三维欧式几何差值: $$D = \sqrt{(R_{像素} - R_{背景})^2 + (G_{像素} - G_{背景})^2 + (B_{像素} - B_{背景})^2}$$ 当算出来的空间差距 $D$ 小于用户设定的“色彩容差 (Tolerance)”阈值时,这个像素就被判定为背景,其透明通道 (Alpha Channel, 对应 RGBA 的 A) 将直接被砍为 0。

2. 避免边缘产生劣质锯齿:平滑羽化 (Edge Feathering)

如果仅仅采用生硬的“非黑即白”分类,图像边缘会有非常硬核刺目的毛刺马赛克。高级在浏览器去底算法会设立一个渐变过渡带

  • 完全小于容差的距离区: 变成 100% 透明。
  • 处于边界的过渡渐变带: 根据差值的大小计算出一套逐步淡入淡出的权重因子,把发丝和身体外延部分进行半透明混合。这样替换后,不论放在透明网格、还是红蓝白证件色底卡上,观感都极其润泽。

3. 为什么不安全地上传照片也能完成?

在本地运行的抠图工具中,这套几何算式不需要上传到云端的神经网络服务器,而是完全在电脑本地显卡或 CPU 算力内由 Canvas 的 PutImageData 函数瞬时回传,完美避免了您机密证件照和商务素材的泄露风险。