【发布时间】:2017-07-16 16:36:30
【问题描述】:
我正在尝试为光栅图像实现泛洪填充方法。 对于中心像素,它很容易并且可以正常工作,但问题是填充边框附近的像素,它们具有不同的颜色。
例如,如果在白色背景上绘制黑色图形,某些边框像素将具有灰色而不是黑色(用于平滑)。
floodfill 期间的图像编辑器(如paint.net)修复了将这些像素更改为新旧像素之间的某种中间颜色的问题。这里我用红色填充了图形,灰色像素变成了红色渐变
我需要知道如何使用 RGB 像素操作将灰色像素变成某种颜色以填充(这里是红色,但可以是任何颜色)的方法或算法。
感谢您的帮助。
【问题讨论】:
-
您可以根据像素颜色
ci填充颜色,开始像素颜色c0和填充颜色c1,例如:ci = c1*|ci|/|c0|,除非您正在处理黑色。不要忘记处理饱和度(标准化)。您也可以使用差异:|ci-c0|/maxdif其中maxdif是填充的阈值 .... -
#Lubch:你的尝试是什么?
-
@Spektre 感谢您的回答,但我担心我没有抓住您 :-( 如果我将它用于 231;231;231 像素,我不会得到 247;72;72。也许我会不正确使用您的公式 (ci = c1*|ci|/|c0|)
-
@gpasch 我正在尝试像右侧一样填充左图,不仅改变白色像素,还改变浅灰色像素。所以我需要算法如何 f.e. 231;231;231 通过填充 255;0;0 变为 247;72;72
-
@Lubch 为您想要模仿的特定实现推导底层方程您需要创建 R、G、B、Gray 渐变并用控制颜色填充它们,以查看颜色如何准确组合.. . 还有 alpha 通道吗?
标签: image image-processing rgb pixels