可编程驾驶执照扫描仪的建议?

时间:2008-11-26 20:27:07

标签: ocr image-scanner

我们的电机池想要扫描驱动程序的许可证并将数据导入我们的自定义系统。我们正在寻找能够以编程方式从扫描仪中获取数据的内容(包括图片),并让我们将其插入到我们的应用程序中。我想知道是否有人有这种类型的系统的经验,可以推荐一个或告诉我们要避免哪些。我们的应用程序是用PowerBuilder编写的,并使用DB2数据库。

7 个答案:

答案 0 :(得分:5)

尝试使用idScan.net(www.idScan.net)的解决方案 有一个SDK可以允许解析美国和加拿大各省的所有州的驾驶执照。您还可以购买ID扫描仪E-seek m250等硬件,可读取二维条码和磁条(包括软件)。 祝你好运!

答案 1 :(得分:2)

我们在记录管理软件中支持类似的内容。我们的应用程序设计用于楔形阅读器,因为它们最容易启动和运行(无需特殊驱动程序)。刷卡时,读卡器会为磁盘上编码的每个字符向操作系统发送击键,每个磁道之间都有一个模拟的Enter按键(符合AAMVA的许可证有3个数据磁道)。

这有点令人讨厌,因为它的行为完全就好像有人在手工输入数据一样,所以没有简单的方法可以告诉你何时拥有所有数据(你可以等待获得3信息行,但很难检测到无效的卡片,例如当有人试图刷一张学生证时,可能编码的曲目少于3个;在这种情况下,应用程序会永远等待不存在的第三曲目被收到)。为了解决这个问题,我们使用“快速失败”方法:每次我们获得Enter按键时,我们立即处理当前行,记录我们在该点预期的轨迹(1,2) ,或3)。如果无法处理当前曲目(例如,轨道上显示的不同起始字符表示AAMVA格式驱动程序许可证的记录),我们假设用户必须刷过驾驶执照以外的其他内容。

我不确定我们使用的阅读器是否支持读取图像数据。它可以编程为返回卡上的数据子集,但我们只使用出厂默认设置,它似乎只返回前三个数据轨道(实际上我相信图像数据是在某些二维条码中编码的)许可证,不是在磁条上,但我可能是错的。)

有关驾驶执照磁条上使用的AAMVA曲目格式的更多信息,请参阅current standard中的附录F.

我们使用的基本方法是:

  1. 显示具有隐藏文本框的模式对话框,该文本框具有焦点。该对话框只是告诉用户通过阅读器刷卡。

  2. 用户刷卡,读卡器开始向隐藏文本框发送keydown事件。

  3. 文本框的keydown事件处理程序监视Enter个按键。当检测到一个时,我们抓取当前存储在文本框中的最后一行,并将其传递给尝试根据AAMVA格式解析轨道的轨道解析器。

  4. 如果当前曲目的“失败快速”解析步骤失败,我们会将对话框的状态消息更改为一条消息,告知用户无法读取卡片。此时,文本框仍然会收到额外的keydown事件,但是没关系,因为后续轨道也有足够的可能性,当读者停止发送数据时,用户仍然会看到错误消息。

  5. 如果解析成功,我们会增加一个计数器,告诉解析器接下来应该处理哪个轨道。

  6. 如果当前曲目数大于3,我们知道我们已经处理了3首曲目。此时,我们解析了3个轨道(已经将大部分字段分开,但此时所有内容仍然存储为字符串)到一个更有用的DriversLicense对象中,该对象对轨道数据进行了额外的检查,并且使它更容易从我们的应用程序中消耗(将DOB字段从字符串转换为真正的Date对象,将AAMVA Name字段中的子字段解析为名字,中间名,姓氏,名称后缀等)。如果第二个解析阶段失败,我们会告诉用户重新刷卡。如果成功,我们关闭对话框并将DriversLicense对象传递给我们的主应用程序以进行进一步处理。

答案 2 :(得分:1)

如果您的扫描仪符合“twain标准”,您就可以通过您可以在网上购买的ActiveX控件(例如this one)从您的应用中管理它。您将能够管理基本扫描参数(质量,颜色,单/多页可以,输出格式等),从您的应用程序开始扫描,将结果保存为文件并在需要的地方传输此文件。过去两年我们一直在使用VB代码。它有效。

答案 3 :(得分:0)

也许你想使用磁条阅读器,从卡上获取驾驶执照信息。我记得大多数驱动程序许可证只是在这些条纹上有纯文本数据,所以它在编程方面比较直接。
MagStripe读者现在也很便宜。

答案 4 :(得分:0)

您可以尝试此列表中的内容:http://www.adams1.com/plugins.html

但我自己并没有使用它们。

答案 5 :(得分:0)

我在C#中编写了一个解析器,虽然它“好”但它仍然远非完美。

我似乎无法找到它,但过去存在的维基百科条目具有寻找的模式(相信我,在没有任何帮助的情况下自己解析这个问题)。

请注意,不同的州有不同的法律规定您可以使用政府颁发的身份证明。德克萨斯州有一个。

我们使用戴尔读卡器,它输入完全,就好像是通过键盘输入,然后是回车键。这使得编程/非常/简单,因为您只需将焦点发送到文本框并等待输入。将它分成大块的主要键是胡萝卜'^'。打破那个,你将拥有基本的块。

答案 6 :(得分:0)

您还可以使用InfoScan SDK。您可以在www.scan-monitor.com上找到它,系统允许您使用任何扫描仪,并且不会让您购买特定的扫描仪。