1

有谁知道用于读取图像文件并将其与现有图像集进行比较的 .NET 可编程/可用 API?

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

我很感激任何帮助!

编辑:将字母 A、B 和 C 替换为苹果、橙子和香蕉的图像。这与其说是识别字母数字字符,不如说是比较形状/图像。

编辑#2:把它想象成一种检测掷骰子结果的方法。想象一个标准的六面凹口模具。当你掷出一个六时,有六个点。它可以以任何方式降落,但我想做的是让相机拍摄模具的照片并将其与控制图像进行比较以检测值。

4

5 回答 5

2

您似乎正在研究的(不是双关语)是计算机视觉研究计划的一部分。您的目标图像到底有什么特点?您是否只在寻找尺寸完全相同但方向不同的模板匹配?轻微的位移会导致精细和倾斜特征的像素模式显着不同。是否应该识别重新调整比例?倾斜的视角怎么办?您的编辑表明您实际上进入了更困难的领域:完整的图像识别需要完整的 AI。您希望从什么角度识别香蕉,在什么光照条件下,以及什么样的香蕉——绿色的、成熟的、因为坐在上面而略微压扁……我希望你明白我的意思!

不要误会我的意思:这很有趣,但需要重型火炮。您可能会发现哪些库可以帮助您处理繁重的线性代数和统计提升,但您需要了解很多才能应用这些库。

对于更轻松的阅读(比较!),我对该领域的介绍伴随着 Hofstadter 的Gödel、Escher Bach和他关于识别字母形状的Metamagical themas 。这也让我对排版产生了兴趣:我从来不知道有这么多画小写字母“a”的方法!

于 2009-04-12T20:02:40.910 回答
1

在您上面的一条评论中,您提到您想使用相机系统检测骰子卷。

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

1)非常简单的方法。使用霍夫变换对你的骰子面的图片进行圆形检测并计算圆形的数量。您将大致了解骰子上的点数大小,这应该有助于设置霍夫算法。

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

希望这有所帮助。

于 2009-04-13T07:41:02.777 回答
1

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

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

如果您可以对图像进行二值化,即如果您正在寻找的圆形图案比背景明显更亮或更暗,则可能更简单

  • 二值化图像
  • 将像素的连接区域(即 Blob)分组(例如,使用 Flood-Fill)
  • 通过将斑点的某些特征(例如总面积、边界像素数、平均亮度、平均对比度)与您期望的图案类型进行比较来确定斑点是否是您的图案之一

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

于 2009-04-13T13:40:48.900 回答
0

如果你安装了 Office,你可以使用它的 OCR 组件

于 2009-04-12T18:41:31.260 回答
0

这是一个开源图像识别程序。它处于测试阶段。这对你来说可能是一个开始。从描述:

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

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

于 2009-04-13T00:03:46.103 回答