Java Flood Fill问题

时间:2015-04-28 08:23:31

标签: java image-processing libgdx flood-fill

我需要编写一个泛光填充算法来对图像中的黑色边框内的像素进行着色。我根据SO上的一些帖子写了以下内容:

awk -F, '{if ($2 == 0) awk '{ total += $3; count++ } END { print total/count }' CLN_Tapes_LON; }' /tmp/CLN_Tapes_LON

这不能按预期工作。例如,在以下测试图像上:enter image description here

根据我点击的位置,随机矩形会变色。例如,单击紫色矩形下方的任何位置将重新着色紫色矩形。单击紫色矩形内部将重新着色绿色矩形。我已经检查了它,并且我将正确的参数传递给方法,所以问题可能在我的循环内部。

1 个答案:

答案 0 :(得分:2)

您的算法是正确的,只有您的输入参数不是。

  

根据我点击的位置,随机矩形会变色。例如,单击紫色矩形下方的任何位置将重新着色紫色矩形。单击紫色矩形内部将重新着色绿色矩形。

如果你看一下图片,彩色矩形并不是随机的。真正的问题是不正确的Y坐标。特别是你的Y坐标是倒置的。

这是因为大多数时候LibGDX使用左下角的y-up坐标系,但是在Pixmap的情况下,它是左上角的y-down。

对此的一个简单修复是通过执行y = pixmap.getHeight() - y来反转Y值。