我目前正在使用 Flex 编写图像编辑应用程序,并尝试制作像 picnik.com 中那样的瑕疵消除功能。
我到处都找过了,但什么也没找到。 适合这个的最佳方法是什么?
我尝试过模糊掉瑕疵,但结果很糟糕。
最佳答案
您没有得到任何其他答案,所以我会尝试一下。我对 Flex 一无所知,但这应该是可行的:
1)用户选择一个区域(为了论证,它是一个圆圈)
2) 对圆边缘的颜色值进行平均并存储该颜色。
3) 在图像和计算出的周边平均颜色之间进行高斯混合。也就是说,圆心的混合程度比边缘的混合程度要高得多。当您接近边缘时,混合量应该逐渐消失。这应该可以防止图像上出现微弱的圆形形状。这也将有助于防止变暗,因为瑕疵颜色不会成为平均过程的一部分。
祝你好运!
编辑
这是一些有关混合操作的伪代码。
for (each pixel)
{
blendingConstant = [A number between zero and one which is close
to 1.0 near the edge of the circle, and approaches a threshold
value the closer you get to the center];
pixelColor = (blendingConstant * pixelColor + ( 1.0 - blendingConstant ) * averagePerimiterColor);
}
阈值可能为零,也可能不是。您必须不断地尝试它,直到它看起来正确为止。
关于apache-flex - 数字图像中的瑕疵去除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972481/