2009-04-12 19 views
1

有没有人知道.NET可编程/可用API用于读取图像文件,并将其与现有图像集进行比较?.NET可编程图形匹配?

例如我有三张字母A,B和C的图片。然后我复制A的图片,并对其进行修改,使其翻转180度。我希望能够有一个软件,检测到它是与现有的字母A匹配。

我感谢任何帮助!

编辑:将字母A,B和C替换为苹果,橘子和香蕉的图像。这不是关于识别字母数字字符,因为它比较形状/图像。

编辑#2:想象一下,它可以检测掷骰子的结果。设想一个标准的双面六面模具。当你掷出六个点时,有六个点。它可能以任何方式出现,但我想尝试做的是用相机拍摄死亡图片,并将其与控制图像进行比较以检测值。

回答

1

如果我正确理解您的问题(特别是编辑2),您想要从照相机或扫描仪在数字图像中搜索圆形图案。

正如RobS已经说过的,傅立叶频谱中的霍夫变换和模板匹配是很好的方法。你可能会发现很多用于hough变换或FFT的库,但是我不确定在没有真正理解算法的情况下你将能够使用其中的一个。例如:标准霍夫变换只适用于线条,它必须适用于圆形。此外,它需要某种预处理来查找圆的边缘。它有几个参数(内部参数空间的大小),如果你不知道它们的含义,那么这些参数很难调整。

如果你能二值化图像,也就是说,如果你正在寻找的圆形图案比背景显著亮或更暗,它可能是简单

  • 二值化图像
  • 组连接区域像素aka斑点(例如使用洪水填充)
  • 通过比较它的某些特征(例如总面积,边界像素数量,平均亮度,平均对比度)与图案类型来确定斑点是否是您的一种模式你会期待

这些子问题(二值化,分割,模式匹配)都不是很简单,甚至可以在一般情况下解决,但如果您的问题很简单,那么您可能只需使用一些非常简单的算法即可。

+0

谢谢,我忘了它是需要的广义Hough变换。但我认为这里所要求的模式匹配的高度约束情况应该使问题相对容易解决。将图像二值化是一个很好的开始,所以+1。 – RobS 2009-04-13 21:13:42

+0

我也许会用hough变换,因为它不需要圆圈比背景更亮。但对于一个初学者来说这是相当先进的,特别是拥有3-5个自由度的GHT。在概念上查找/测量斑点更容易。 – Niki 2009-04-14 04:58:56

0

如果您已经安装了Office,您可以use its OCR component

+0

我已经使用Office OCR,这是错误和痛苦。 – boj 2009-04-12 18:43:51

+0

这将使用非字母数字图像吗?信件只是一个例子。你可以用香蕉,橘子和苹果的图片替换A,B和C. – 80bower 2009-04-12 18:44:03

+0

80Bower:不,它不会 – Brann 2009-04-12 18:47:07

2

你似乎什么寻找到(没有双关语意)是computer vision研究项目的一部分。什么是你的目标图像的特征?你只在寻找尺寸完全一样但方向不同的模板火柴吗?轻微的位移会导致精细和倾斜特征的显着不同的像素图案。应该重新认可吗?什么倾斜观点?你的编辑表明你实际上陷入了更加困难的地方:全面的图像识别需要全面的AI。从什么角度你会认识到一根香蕉,在什么样的光照条件下,以及什么样的香蕉 - 绿色,成熟,从坐在它身上稍微压扁......我希望你明白我的观点!

不要误会我的意思:这是有趣的东西,但需要重型火炮。你可能会发现哪些图书馆可以帮助你解决繁重的线性代数和统计问题,但是你需要了解很多才能应用这些图书馆。

为了更加轻松阅读(比较!),我在该领域的介绍与霍夫斯塔特的Gödel, Escher Bach,他的Metamagical themas识别字母形状。这也让我对印刷术感兴趣:我从来不知道有很多绘制小写字母'a'的方法!

+0

想象一下,它可以用来检测掷骰子的结果。设想一个标准的双面六面模具。当你掷出六个点时,有六个点。它可能以任何方式出现,但我想尝试做的是用相机拍摄死亡图片,并将其与控制图像进行比较以检测值。 – 80bower 2009-04-13 00:35:15

+0

你真的应该把这个问题放在你的问题上。当它的确切背景未知时,回答你的问题是非常困难的。 – RobS 2009-04-13 07:42:09

0

这是一个open source图像识别程序。它处于测试阶段。这可能是你的开始。来自说明:

根据图像本身的特性搜索图像,一旦图像加载后,搜索速度非常快。显示按照相似性排序的结果列表。

您还可以搜索图像库中的重复项。

1

在上面的一条评论中,您提到了您希望使用相机系统检测纸卷。

有几种方法解决这个问题,这里有两个:

1)非常简单的方法。使用模具面部图片上的hough变换进行圆圈检测并计算圆圈数量。你会知道大约骰子上的点的大小,以帮助设置hough算法。

2)复杂的方法。获取骰子各个面的图像并计算傅立叶变换并提取功率谱(2D然后在方向上折叠)。功率谱将为您提供每个模面的签名,与模相对于相机的方向无关。您可以将这些特征功率谱与模切辊的特征功率谱进行比较。最接近的匹配应该是你的点数....

希望这会有所帮助。

+0

感谢您的想法。我会环顾四周,寻找一个能够帮助你的人。 – 80bower 2009-04-13 12:58:44