洪水填充算法,采用阿尔法考虑不留周围抗锯齿线边缘?

我已经实现了一个典型的洪水填充算法,它工作时纯色都用到哪里我用的是ARGB组件之间的欧氏距离比较颜色的预期。

我的问题是,如果你画的东西像一个透明背景的反锯齿红线我的洪水填充算法不会填满了大部分半透明像素,留下周围的物体边缘。 特别在这个例子中,线的中心是实心的红(即(255,255,0,0)ARGB格式)和行的条纹也固体红色,但这些像素的α范围降低到1%α (即(1,255,0,0))。 通常情况下,我希望能够借鉴,也就是说,一个抗锯齿圆轮廓,颜色填充的中心,没有它离开条纹。

我用什么函数来比较颜色和/或我如何适应洪水填充算法所以这样的条纹不在身边的物体离开?

我试着告诉算法总是填补了一个像素,如果它是alpha为<90%,这有时看起来不错,但它在填充了淡淡的线条过于激进。

编辑:为了详细说明这是什么样子,其中0 - 5表示红色像素的0,20,40,60,80和100%的α,反走样红线可能是这样的形象:

0 0 0 0 0 0 0

0 0 0 3 0 0 0

0 0 3 5 3 0 0

0 0 3 5 3 0 0

0 0 3 5 3 0 0

0 0 0 3 0 0 0

0 0 0 0 0 0 0

我现在的洪水填充算法在左上角填充红色将取代所有以5剩下的三分球周围形成线上的难看晕0。

--------------解决方案-------------

您填写的洪水应该更换颜色的RGB部分,但保留原来的字母。 这样,你得到新的颜色不改变混合比例。

(如果你的位图使用预乘阿尔法,那么你应该通过扩展现有的阿尔法更换RGB,但在你的例子,你是不是使用预先乘阿尔法)。

分类:图像 时间:2015-03-15 人气:1
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.892 (s). 10 q(s)