如何消除模糊边缘上的光环?

问题描述 投票:0回答:1

所以我正在研究执行模糊的滤镜。

[当图像具有Alpha通道时,图像模糊不正确。这是因为它会因为位于alpha = 0区域上的彩色像素而变得模糊。

我创建了一个示例进行说明。在左上角的图像中,有原始图像。它有一个Alpha通道,但我禁用了它。

在右上方的图像中,我正在使用alpha通道导入它。它将alpha通道部分中的像素显示为黑色。

在左下图中,我已经执行了模糊算法。您可以看到边缘具有明亮的光晕,因为即使存在Alpha通道,它们也相对于第一张图像中显示的浅色背景像素模糊了。]

在右下图中,我将它与背景进行了合成,以便您可以看到它的合成不正确。

Blur Halo

我已经阅读过,这可能是预乘问题。我已经将alpha = 0部分上的RGB像素乘以黑色,但这仍然是不正确的。当我合成该版本时,可以看到它创建了一个黑暗的光环,而不是明亮的光环。

似乎我需要知道目标图像的RGB值,但这是不可能的,因为用户会确定这一点。

所以我做错了什么?如何调整算法,使其正确模糊边缘,而不是与背景较亮的像素相对,从而产生明亮的光晕?

感谢您对此提供的任何帮助,因为我真的很坚持!

所以我正在研究执行模糊的滤镜。当图像具有Alpha通道时,其模糊不正确。这是因为它会因为位于alpha = 0上的彩色像素而变得模糊...

graphics transparency alpha blur premultiplied-alpha
1个回答
0
投票

模糊处理是通过平均目标像素某个邻域中的像素来进行的。当您到达前景对象的边界时,该算法除了从背景中获取像素外,别无选择。

© www.soinside.com 2019 - 2024. All rights reserved.