分享一个我今天在 AI 的帮助下开源的极简实用算法:AGED (Alpha-Gated Edge Despill)。
📌 痛点:做过 Chroma Key (色度键控)的同学应该都知道,抠像后的“去溢色”是个麻烦事。像 FFmpeg 等传统全局算法,往往会把前景里正常的绿色(比如衣服、道具)也给去掉了,而且还需要你不断去调 spillmix 这种玄学参数。 💡 我的解法(工程极简主义):其实去溢色根本不需要全图跑。AGED 算法直接利用 Alpha 遮罩做门控( Gating ),只针对半透明的边缘像素( 0 < α < 1 )进行处理。
它没有任何需要调节的参数,直接上硬判决:如果 $G > \max(R, B)$,就把 G 替换掉。
带来的直观优势: 1 、绝对的前景保护:内部不透明像素直接 Skip ,完美保留原色。 2 、零配置:开箱即用,告别调参。 3 、极致性能:内存连续访问优化,复杂度 $O(N)$。在 4K 分辨率的 Benchmark 下,标量版性能远超传统的向量化全局算法。
项目采用 MIT 协议,包含了 C++ 标量版、Cython 绑定的 Python 接口,以及一段极简的现代 GLSL Shader ,非常适合嵌入到各位的实时处理管线或游戏引擎中。
效果对比见附件,GitHub 源码:github.com 如果你觉得有意思或者能帮到你,欢迎来点个 Star ,或者在 Issue 交流!
PS:数学原理绝无问题,C++/GLSL 代码如果有 Bug ,自行修复,我没有验证环境,没有细致查验。