在C#中查找闭合的形状

时间:2015-12-21 12:10:33

标签: c# algorithm

假设你有一个正方形网格,每个网格项目都是“填充”或“未填充”,是否有一个很好的算法可以检测网格中的任何“实心”形状?

下图显示了我想要完成的一个示例。图像显示一个封闭的形状,然后是两个在其中有孔的潜在形状。另请注意,形状不一定是简单的正方形或矩形,但不应存在直接对角线。

Example image with one filled shape and two potentials

  • 红色方块表示“填充”方块。
  • 蓝色方块表示封闭形状的内部区域
  • 白色方块未填充

我的问题是 - 是否存在一种算法(在数学上完全没用的东西可以跟随的东西!希望有一个C#实现)可以检测到这个网格中的单个封闭形状(或多个形状,如果存在),包括返回形状内的实际方块?

到目前为止,我漫无目的的想法只涉及使用线性填充填充,但这似乎并不合适,例如没有单一的源点,但必须扫描整个网格以获得可填充的形状。

1 个答案:

答案 0 :(得分:0)

请看一下: EmbeddedVisionDesignKit

这是一个由HAN(Hogeschool Arnhem Nijmegen)的老师制作的项目。

该项目适用于嵌入式设计,但operators.cpp中的功能是逐个像素处理图像的运算符。

编辑: 我没有制作代码,我只是公开了。