所以我正在研究一个执行模糊的过滤器。
当图像具有 Alpha 通道时,它会不正确地模糊。这是因为它与位于 alpha=0 部分的彩色像素模糊。
我创建了一个示例来说明。在左上角的图像中,我们有原始图像。它有一个 alpha 通道,但我禁用了它。
在右上角的图像中,我使用 Alpha 通道导入它。它将 Alpha 通道部分中的像素显示为黑色。
在左下角的图像中,我执行了模糊算法。您可以看到边缘有一个明亮的光晕,因为它们在第一张图像中显示的浅色背景像素上变得模糊,即使 alpha 通道在那里。
在右下角的图像中,我将它与背景合成,以便您可以看到它合成不正确。
我读过这可能是一个预乘问题。我已将位于 alpha=0 部分的 RGB 像素预乘以黑色,但它仍然不正确。当我合成那个版本时,你可以看到它产生了一个暗光晕而不是一个明亮的光晕。
似乎我需要知道目标图像的 RGB 值,但这不可能知道,因为用户会确定这一点。
那么我做错了什么?如何调整我的算法,使其正确模糊边缘而不是背景更亮的像素,从而产生明亮的光晕?
我很感激这方面的任何帮助,因为我真的被困住了!