问题标签 [flood-fill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2791 浏览

matlab - 基于非连续轮廓创建包含填充椭圆的矩阵

我正在尝试创建一个包含 0 值的矩阵,其中 1 个值填充椭圆形状。我的椭圆是使用 minVolEllipse.m (链接 1)生成的,它以“中心形式”和椭圆的中心返回椭圆方程的矩阵。然后,我使用 Ellipse_plot.m 中的一段代码(来自上述链接)将向量参数化为长轴/短轴,生成参数方程,并生成变换坐标矩阵。您可以查看他们的代码以了解这是如何完成的。结果是一个矩阵,该矩阵具有沿椭圆的点的索引位置。除非我将网格点的数量 N 设置为一个高得离谱的值,否则它并不包含沿椭圆轮廓的所有值。

当我使用 MATLAB plot 或 patch 命令时,我看到了我正在寻找的结果。但是,我希望将其表示为 0 值和 1 的矩阵,其中补丁“填充”空白。很明显 MATLAB 有这个功能,但我还没有找到执行它的代码。我正在寻找的类似于图像处理工具箱的 bwfill 工作方式(链接 2)。bwfill 对我不起作用,因为我的椭圆不连续,因此该函数返回一个完全填充有 1 个值的矩阵。

希望我已经很好地概述了这个问题,如果没有,请发表评论,我可以编辑帖子以澄清。

编辑:

我设计了一个策略,使用 Ellipse_plot.m 中的 2-DX 向量作为 EllipseDirectFit.m 的输入(链接 3)。此函数返回椭圆函数 ax^2+bxy+cy^2+dx+dy+f=0 的系数。使用这些系数,我计算了 x 轴和椭圆长轴之间的角度。这个角度以及中心轴和主轴/次轴被传递到 ellipseMatrix.m(链接 4),它返回一个填充矩阵。不幸的是,矩阵似乎与我想要的不一样。这是我的代码的一部分:

编辑2:

作为对@BenVoigt 建议的回应,我在这里写了一个for-loop 解决方案:

虽然这在技术上是解决问题的方法,但我对非迭代解决方案很感兴趣。我在许多大图像上运行这个脚本,并且需要它非常快速和并行。

编辑 3:

感谢@mathematical.coffee 提供此解决方案:

但是,我相信还有更好的方法可以做到这一点。这是我做的一个 for 循环实现,它比上述两种尝试都运行得更快:

没有这个for循环有没有办法实现这个目标(总图像大小仍然是[宽度高度])?这更快的原因是因为我不必遍历整个图像来确定我的点是否在椭圆内。相反,我可以简单地迭代一个正方形区域,该区域是中心的长度 +/- 最大的主轴。

0 投票
1 回答
582 浏览

c# - wp7 xna洪水填充Texture2D算法

我需要在 WP7 XNA 中填充纹理 2D。

我正在寻找我在 WP7 XNA 中使用的代码。

任何的想法?

0 投票
1 回答
822 浏览

objective-c - 洪水填充崩溃

我一直试图让一个简单的洪水填充算法适用于我正在开发的 iPhone 应用程序,但我无法让它正常工作。

我已经让实际过程运行良好,但是当填充太大时应用程序会崩溃。据我所知,因为线程从所有正在运行的函数中溢出。根据我的阅读,我需要实现一个堆栈,但我无法弄清楚它是如何工作的。

任何关于我如何能够实现堆栈甚至使用另一种算法的帮助将不胜感激。

最好的,达伦

0 投票
4 回答
4009 浏览

iphone - 如何用颜色填充形状

我是 Objective-C 和 iOS 开发的新手。我对核心图绘制的一些图形有一个看法。现在我想用颜色填充这些形状,但我不知道形状的路径或上下文。Objective-C 是否具有像洪水填充或放置像素这样的功能,以便仅使用笔触颜色我可以填充视图内的任何形状。

这将制作一个带有一些公共区域的圆形和方形。当用户点击该区域时,我希望特定区域填充颜色。

0 投票
3 回答
16068 浏览

algorithm - 哪种洪水填充算法对性能更好?

我正在尝试实现一种类似于洪水填充的算法。问题是我不确定我应该以什么方式实现它,例如递归 - 非递归。
我知道每个都有其缺陷,但其中一个必须比另一个更快。当非递归每次分配 4 个新点时,递归在堆栈上打开新函数。
非迭代示例:

编辑:我将在 600X600 像素的地图上应用以下算法。虽然洪水填充不会应用于整个地图,但每次迭代它应该覆盖大约 30% - 80% 的地图。我的意思是在高度图中发现边缘并标记这些边缘以供进一步使用。

0 投票
1 回答
2185 浏览

algorithm - Unity 3D - 洪水填充/油漆桶算法不断崩溃引擎

我一直在尝试编写一个可以在 Unity 中工作的洪水填充算法。这个想法是根据用户选择的颜色为黑白线条图的部分着色。我已经尝试了几种洪水填充算法的实现,但是当它们被调用时,它们都会导致统一挂起。

非常感谢对此的任何帮助,这是重要项目的一部分。任何有关修改代码、算法设计或任何替代方法的建议都将不胜感激:)

代码:

0 投票
1 回答
885 浏览

c++ - c++中洪水填充的困难

我做了这个程序,应该淹没矩阵,但出了点问题。这是代码:

Point 是我之前在代码中定义的结构,它仅包含 x 和 y 作为整数。如果矩阵为空,程序会正确填充矩阵,例如:如果我输入

我得到输出:

但如果我输入:

我明白了

代替

如果我在每次弹出后检查坐标,我会注意到它超出了边界(例如,它返回坐标 1 -1,它不应该这样做)。

0 投票
2 回答
2575 浏览

c - 高效的 8 连接洪水填充

我一直在使用 Paul Heckbert 出色的种子填充算法(可在此处和《Graphic Gems (1990) 》一书中获得)。

算法可能会出现令人费解。它构思精巧,速度很快!不幸的是,它仅适用于 4 连接空间。

我正在为 8 个连通空间(沿对角线泄漏)寻找一种设计良好、快速的算法。有任何想法吗?

就本问题而言,递归访问或重复将每个单元扔到堆栈上不会被认为是精心设计的。最受赞赏的是伪代码中可用的算法(Heckbert 的代码和伪代码都可用)。

谢谢!

为了完整起见,此处复制了 Heckbert 的算法:

0 投票
1 回答
1831 浏览

android - 如何在android中实现flood-fill算法?

如何在android中实现Flood-fill算法。但是代码是用c语言编写的。我们可以在android中实现算法吗。有没有可用的开源代码或任何网站教程链接

0 投票
3 回答
6220 浏览

android - Android:这个框架油漆怎么做?

我有一些静态图像,如下所示:

在此处输入图像描述

现在,我想要的是,当我触摸脸部或手部时,应在该皮肤部分填充所选颜色。

见下图结果:

在此处输入图像描述

那么如何得到上面的结果呢?重做和撤消功能也应该在那里。

我尝试过使用 FloodFill 颜色,但这样做我只能在特定部分进行颜色。因为 FloodFill 只填充颜色,直到出现相同的 pixwl 颜色。如果触摸位置像素颜色发生变化,它将不会在其上填充颜色。

所以 Usinf FloodFill 我得到了如下图所示的结果,如果我按下手,那么只有手的部分会填充颜色,而不是我想给另一只手和脸填充颜色。 在此处输入图像描述

所以请在这种情况下帮助我。

已编辑

经过一番回复,我得到了这样的解决方案

但是仍然存在内存问题。绘制颜色会消耗大量内存。所以请任何人都可以帮助我吗?