矩阵内的模式识别

时间:2014-07-22 10:55:35

标签: image-recognition aforge opencvsharp

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

enter image description here

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

无论你在寻找什么,我都要从emguCV开始。它是一个非常全面的图书馆,使用起来并不太难。

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

我没有使用它进行任意形状检测的经验,但我认为SURF检测,也就是emguCV也能做到的,可能是一个很好的方法。它会尝试将给定图像与另一个图像中的要素进行匹配。

答案 1 :(得分:0)

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

所以也许你可以这样尝试,获得第一个位置,然后记录三角洲位置。 试着寻找长线,以及它们的下一个方向;存储大致方向的变化。 上面的示例将“向下”,您也可以存储一些长度信息。

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