0

假设我有这些盒子,其中一些是黑色的,一些是白色的。

在此处输入图像描述

图像显示了用黑框绘制的 U 形。现在假设我有一个 1 和 0 的矩阵(它可以是一个巨大的矩阵),如下所示:

111111111111111111
111111111111111111
111111111111111111
111111111101111111
111111111101111111
111011111101111111
111011111101111111
111011111101111111
111011111101111111
111011111101111111
111011111101111111
111100000011111111
111111111111111111

它显示了大致形成图像中所示形状的零点。图像和矩阵只是示例。该图像是我们应该在其中绘制模式的软件的屏幕截图,然后需要将其定位在给定的矩阵中(在简单的文本文件中)。

我正在寻找的是如何开始这方面的指导,因为我从未编写过与模式识别相关的任何东西,这个问题显然与此有关。这就是我所要做的,给定一个模式,与 0 和 1 的矩阵匹配。我不认为我可以在几天内自己编写它,我正在用 c# vs 2013 编写代码,所以希望我能找到一些库,让我以最少的依赖项实现这一目标。谢谢

4

2 回答 2

0

我认为您需要提供更多关于您正在寻找什么的信息。形状都是字母还是任意形状?

无论您在寻找什么,我都会从 emguCV 开始。这是一个非常全面的库,使用起来并不难。

EmguCV 有很多 OCR(光学字符识别)功能,应该能够很好地识别字母。

我没有将它用于任意形状检测的经验,但我认为 SURF 检测(emguCV 也可以)可能是一个不错的方法。它尝试将给定图像与另一幅图像中的特征进行匹配。

于 2014-07-23T10:24:08.443 回答
0

人们永远不会在与您存储的数据完全相同的位置和比例上绘图。你想要的东西通常是用神经网络完成的(它也在 aforge 中)。但是 A 可能很难理解它,而 B 在你的代码中使用它。

所以也许你可以这样尝试,得到第一个位置,然后记录增量位置。尝试找到长线,以及他们的下一个方向;存储大体方向的变化。上面的示例将是“向下”,您还可以存储一些长度信息。

然后有一些数学来检查有多少不同的集合,例如字符串的字符串比较距离(如 php 中的 levenshtein 函数);想不出 c# 面团中的 levenshtein func 我不认为 c# 有那么丰富的字符串函数,但是一旦你看到我确信你可以为 C# 派生一些东西。

于 2014-08-29T00:44:24.433 回答