1

目前,我公司的研发部门正在开发一个 iOS 应用程序,该应用程序使用移动设备的摄像头识别信用卡号和有效期。我们已经成功完成了大部分项目,现在正在将卡号数字拆分为单独的块以供进一步识别。阅读更多以找到详细信息:http ://rnd.azoft.com/optical-recognition-ios-application/ 如果您从事过类似的任务,如果您能分享您的方法和收到的结果,我们将不胜感激。

4

2 回答 2

0

1)图像质量判断,只将质量好的图像发送到下一个阶段。质量差的图像会给你不正确的结果。这将是智能手机上非常糟糕的用户体验。许多智能手机的相机都有自动对焦功能,您只能在相机完成自动对焦后使用图像。

2)卡片检测。检测整张卡。这个阶段很重要,很多算法都失败了。您可以通过形态算子或其他图像算子来检测卡片。但是这个运营商在智能手机上有点慢。或者您可以训练一个级联分类器进行卡片检测。这种检测比上一种方法更快。但是一般卡很难处理,我的意思是,这种方法只能检测到一种卡。

3)提取字符区,很容易得到字符区,因为数字是在指定卡片的固定位置。

4)字符分割,使用垂直投影进行分割,可以得到每一个单独的数字图像

5)字符识别。在每个数字图像中找到连通分量,裁剪图像以便只包含连通分量。将裁剪后的图像发送到信号数字分类器。我试过 tesseact ,结果还不错。也许您可以使用其他出色的数字分类器。

6)号码验证。有些卡号有验证规则。你可以利用它。

于 2013-09-28T23:27:08.153 回答
0

我知道的所有信用卡都使用 Luhn 方案,比如校验和,所以你应该用它来验证数字。最关键的数字在左侧,因为它们对品牌进行编码,然后通知您长度。也就是说,有一些例外情况会使绝对假设变得困难。Luhn 代码将成为你最好的朋友。

有一个 iOS Credit Card Entry 项目,其中包含一些带有 Luhn 代码和品牌标识的代码,应该会有所帮助。

于 2013-06-06T11:32:51.960 回答